互软研发团队

Talk is cheap. Show me the code.

如何启用开发框架日志输出

Beyondbit Framework使用log4net记录日志,如果想要查看日志输出可以创建一个名称为"log4net.config"的配置文件,将它放在应用系统的根目录。详细的配置信息可以参考:http://logging.apache.org/log4net/release/manual/configuration.html

附件是一个简单的示例,它会将错误级别的日志写入到当前目录下名为log-file.txt的文件里面。

log4net.config (693B)

关于近期使用.NET开发框架系统出现错误"The value can not be null or an empty string,参数名:connectionString"解决方案

问题现象:


问题原因:

安装MySQL后会在.NET Framework对应版本的machine.config注册一个空的MySQL数据库连接字符串,文件的位置根据版本和架构不同:

dotnetfx 4 x64: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

dotnetfx 4 x86: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

dotnetfx 2 x64:  C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config

dotnetfx 2 x86: C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config

ASP.NET启动以后,会根据目前所运行的环境将对应machine.config的配置和当前站点的Web.config进行合并并加载,旧版本的开发框架(2.0以下版本)默认访问下标为1的数据库连接作为默认连接,在machine.config新增了MySQL连接字符串配置后导致读取到的不再是应用系统配置的第一个数据库连接字符串。


解决方案:

目前有两个比较快速的解决方案,我们推荐第二个:

1、修改对应的machine.config,注释掉新增的MySQL部分。

2、通过Nuget连接研发中心的仓库,更新到最新版本的开发框架(至少2.0以上把那本),并参考如下进行配置:

    1)打开Web.config/App.config,定位到<Beyondbit.Framework.Web>配置节

    2)新增配置元素:<DefaultConnectionStringKey>{default key}</DefaultConnectionStringKey>,例如:<DefaultConnectionStringKey>mainDB</DefaultConnectionStringKey>


补充:

如果对于这两个方案都不满意的情况下我们建议你可以开发自定义的ConnectionManager用来替换FrameConfig.config文件中配置的DefaultConnectionManager。

基于开发框架的新增数据返回的自增长ID出现对应不上问题解决方案

调用开发框架DAO提供的Insert方法返回的自增长ID基于SQL Server内置的语句:SELECT @@IDENTITY,如果对应的数据表下包含插入的触发器并且也使用了自增长ID就会导致最终返回的ID为最后一个插入触发器的自增长ID。目前解决方案有2种如下:

1、插入触发器的表不使用自增长ID

2、当前表不使用自增长ID

P.S. SQL Server 2008以上版本支持通过"SELECT SCOPE_IDENTITY()"避免该问题,考虑到目前开发框架还要兼容SQL Server 2008以下版本暂不对开发框架进行调整。


开发框架配置不同DAO读取不同的数据库链接


引言

很多同事咨询DAO如何使用不是mainDB之外的其它数据库链接,本文通过使用开发框架的数据链接映射功能来实现。

使用数据链接映射

1、在Web.config中configSections结点配置一下配置

  <section name="Beyondbit.Framework.ConnectionStringMappings"
             type="Beyondbit.Framework.DataAccess.ConnectionStringMappingsSectionHandler, Beyondbit.Framework"/>
2、在Beyondbit.Framework.Web节点下增加如下配置:

<Beyondbit.Framework.Web>
    <ConnectionSettingsPolicy>Beyondbit.Framework.DataAccess.ConnectionSettingsMappingPolicy, Beyondbit.Framework</ConnectionSettingsPolicy>
  </Beyondbit.Framework.Web>
3、增加Beyondbit.Framework.ConnectionStringMappings节点,然后根据自己的需求增加不同的子节点

<Beyondbit.Framework.ConnectionStringMappings>
    <!-- 将Demo1.DAO这个所有的DAO类使用mainDB这个数据库 -->
    <assembly connectionName="mainDB"
              mapTo="Demo1.DAO"/>
    <!-- 将Demo2.DAO这个命名空间下所有的DAO类使用mainDB2这个数据库 -->
    <namespace connectionName="mainDB2"
               mapTo="Demo2.DAO"/>
    
<!-- 将Demo3.DAO.TestDAO3这个DAO类使用mainDB3这个数据库 -->
    <class connectionName="mainDB3"
           mapTo="Demo3.DAO.TestDAO3"/>
  </Beyondbit.Framework.ConnectionStringMappings>

以上方案需要开发框架1.0.2.1+版本支持。

协同办公附件服务调用Update方法提示"无法将Content字段从nvarchar类型转换为Image类型"解决方法

调用协同办公附件服务的Update方法提示"无法将Content字段从nvarchar类型转换为Image类型",可以参考以下方案解决

下载:Beyondbit.Framework.zip (85.8KB) 或通过NuGet获取最新版本的Beyondbit Framework For .NET。IIS目录下打开BCOP_SOA\Blob的部署目录,替换bin目录下的Beyondbit.Framework.dll(保证替换的版本为2.0.5749.28212以上)。

开发框架升级到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配置节


Beyondbit.Framework 2.0 技术培训

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

培训示例使用方法:

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



相关资料:

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