互软研发团队

Talk is cheap. Show me the code.

开发框架升级到2.0以后,问题集锦,不断更新!

1、ProxyService创建BO报错


升级到2.0以后,之前ProxyService创建BO成功,升级后报错,代码堆栈异常在:GlobalPreProceed.SetConnectionManager2Context()

 

解决:

请检查FrameConfig.config文件中,是否有以下配置:
<ConnectionManager name="DefaultConnectionManager"  assemblyName="Beyondbit.Framework"  typeName="Beyondbit.Framework.Core.Transaction.ConnectionManager"/>
如果有,请选择以下两种方案都可解决:
  1. Beyondbit.Framework.Core.Transaction.ConnectionManager更改为Beyondbit.Framework.Core.Transaction.DefaultConnectionManager
  2. 直接删除ConnectionManager配置节


协同办公应用在IOS平台滚动条无效的问题解决方案

前言

协同办公应用在IOS平台所有的滚动条无效,是由于IOS平台是默认关闭所有div、iframe元素的滚动条,所以在PC端可以滚动的到IPad或IPhone中就无效了,请根据以下规则兼容IOS平台


使用MVC 4的DisplayModeProvider功能适配出PC或移动端

1、在Global.asax文件中,Application_Start方法中,增加以下红线框中的代码:



2、增加移动端Layout文件


请复制附件中_layout.phone.cshtml到你项目中_layout.cshtml同一个文件夹下。请注意_layout可以是任何模板名,对应_layout.phone.cshtml中的_layout改成您的模板名称.

其中主要代码段如下:

做完上述两步后,基本上页面在IOS平台的滚动条就可以使用了。

其它需要手动调整


还有以下特殊情况,需要小调整,下文将不定期更新:
1、页面中包含IFrame元素,需要在它的父元素增加一个.fit-scroll样式.如下:


_Layout.phone.cshtml (1.5KB)

关于360 安全浏览器 4.0版本 ajax POST的时候,无法传递参数

前言

360安全浏览器 4.0版本,是2012年发布的360公司发布的浏览器版本,经测试,此版本在JS中的Ajax有个BUG,在调用POST协议时,无法传递参数,传递的参数会丢失。 6.0以上的版本下来此问题已经修复。

重现

JQuery Ajax 实验 

Code:




利用Fiddler查看请求:


可以看到WebForms没有Body数据。


原生Ajax


Code:



结果和JQuery Ajax一样,没有Body数据。

结论:
jQuery Ajax和原生JS Ajax都是同样的效果,所以不是jQuery Ajax的代码有兼容性问题,测试其它的浏览器都没有上述问题,只有360安全浏览器4.0版本有这个问题,其它360 6.0以下版本是否有这个问题,就没有测试,请大家自行测试,如果有问题,只能通过升级360浏览器修复这个问题。

关于流程图图片的查看模式下报错问题

访问页面/FlowDesigner/StepImage.ashx,报如下错误:

Unable to generate a temporary class (result=1).

error CS0200: Property or indexer 'Beyondbit.FlowDesigner.Models.DesignData.SpyNodes' cannot be assigned to -- it is read only

error CS0200: Property or indexer 'Beyondbit.FlowDesigner.Models.DesignData.SpyNodes' cannot be assigned to -- it is read only

error CS0200: Property or indexer 'Beyondbit.FlowDesigner.Models.DesignData.SpyNodes' cannot be assigned to -- it is read only

error CS0200: Property or indexer 'Beyondbit.FlowDesigner.Models.SpyNode.NodeTasks' cannot be assigned to -- it is read only

解决方案:

需要在服务器上面安装.Net Framework 4.5

Beyondbit.Framework 2.0 技术培训

Beyondbit.Framework 2.0 技术培训,讲解开发框架如何使用,基本的增、删、改、查。 如何快速使用开发.

培训示例使用方法:

打开Demo.sln有个DemoDB项目,将此数据库项目发布到数据库中,并将Demo.App项目的连接字符串更改为你的数据库中将可运行.



相关资料:

http://kmc.beyondbit.com/Knowledge/Details/1964


添加研发团队NuGet Package Source

1、启动Visual Studio,顶部菜单Tools -> NuGet Package Manager -> Package Manager Settings

2、弹出Options窗体,左侧选择"Package Sources"

3、单击右上角添加按钮图标,分别输入:

1)Name:nuget.beyondbit(可任意)

2)Source:http://Nuget.beyondbit.com/nuget


在NuGet Explorer中选择对应的NuGet Source,就可以获取研发中心相关组件的更新,如下图:


痕迹保留控件支持WPS 2013

我们正在做痕迹保留控件支持WPS 2013的相关工作,目前暂无法支持的功能(经金山研发方面确认):

1、修订统计无法显示删除操作内容,目前金山方面也没有加入该功能的计划

2、打印预览失败,需要更新至最新版本

联合办公的选人控件跨域没有调用权限的解决方案

问题描述:

当使用联合办公公共选人控件时,当前应用程序的域名假设为app.beyondbit.com, 而公共选人控件部署在bucp.beyondbit.com/choosepenson站点中,此时在当前应用程序下调用公共选人会出现跨域,无法正常使用。



解决方案:

一、修改ChoosePerson站点下的View,增加Domain的设置。

      


二、修改你当前使用的Beyondbit.Web.Choose.1.0.js中

       

三、在你的前面加载的时候请调用

$(function(){
Beyondbit.Web.Choose.init({
domain:"beyondbit.com"
});
})

解决思路请参考js 对象domain的原理

http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html


使用Visual Studio进行远程调试

由于服务器环境限制,进行Live Debugging不可能再安装Visual Studio。在不熟CDB、WinDbg等情况下推荐使用Visual Studio自带的远程调试功能。参考下面步骤:

1、将Visual Studio Remote Debugger Monitor部署到被调试服务器。如何获取Remote Debugger?以Visual Studio 2013为例,目录:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugger,被调试进程64位则复制该目录下的x64目录
2、已管理员身份启动msvsmon.exe,顶部菜单选择Tools -> Options。在弹出窗口的Authentication mode选择No Authentication,并勾选Allow any user to debug

3、启动Visual Studio,并打开要调试的解决方案或对应源代码文件。顶部菜单Debug -> Attach to Process,弹出对话框的Transport选择Remote(no authentication)、Qualifier输入被调试服务器IP或计算机名、选择要调试的进程,最后单击附加


使用PowerShell替代WinDbg在高分辨率笔记本下调试、排错

最近换新的开发笔记本,分辨率较高发现部分应用在High DPI下几乎没法用。比较纠结的就是WinDbg,频繁切换分辨率、显示文字大小影响工作节奏。cmd跑cdb调试效果也非常糟糕,幸好PowerShell在High DPI下效果不错。

1、下载PowerDbg v6
2、解压运行Install_PowerDbg.bat
3、运行Windows PowerShell,设置本地不受限制的执行策略。输入:Set-ExecutionPolicy Unrestricted
4、导入PowerDbg模块,输入:Import-Module PowerDbg
5、环境变量中设置调试器的路径,例如:$env:DebuggingTools="C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86";
6、启动调试会话,并指定dump file路径。例如:New-DbgSession -dump "D:\1.dump"
7、加载调试器扩展,比如调试.NET的sos:Load-DbgExtension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll
8、执行调试器命令,例如:Invoke-DbgCommand kb