Chr*_*bur 3 vb.net asp.net dotnetnuke
我有几个DNN模块,我希望使用从单独的应用程序(在这种情况下是Windows服务)调用的门户网站的内置模块升级工具进行静默更新.通过修改关键区域中的DNN源以允许DotNetNuke.dll在Web应用程序之外运行,我能够使用门户版本4.3完成所有工作.我现在正试图用4.9.0源代码做同样的事情,我遇到了问题.
在DNN尝试从数据库中读取之前,一切正常.我在一个VS解决方案中加载了我的Windows服务项目,DNN库项目和其他几个相关项目(其他项目与DNN源提供的主解决方案文件中的项目相同).我在我的服务中调用PaInstaller.Install来更新每个模块.执行转到reflection.vb,然后尝试根据类型名称创建一个DotNetNuke.Data.SqlDataProvider对象.它在调用System.Web.Compilation.BuildManager.GetType时引发异常.例外说:
无法从程序集'System.Web,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'加载类型'DotNetNuke.Data.SqlDataProvider'
我读到这意味着它无法找到DotNetNuke.SqlDataProvider.dll程序集.奇怪的是程序集位于DNN库项目的Bin文件夹中,我也将它放在运行Windows服务的文件夹中.实际的SqlDataProvider项目也会加载到解决方案中.我不能为我的生活理解为什么运行时环境无法定位程序集.
有没有人尝试过这样的事情,或者知道什么可能导致在通过DNN源时找不到程序集?我最好使用BuildManager.GetType以外的东西来获取SQL提供程序类型的实例吗?
克里斯,
老实说,根据您的需求,我会以不同的方式看待这一点,因为将来每次DNN升级都会非常脆弱.
我更倾向于使用DNN已经拥有的"批量安装"选项.让你的服务上传模块zips到/ install/modules文件夹,然后从那里调用/install/install.aspx?mode=installresources,你就完成了!
如果您需要第三方解决方案来解析结果,请让您的Windows服务通过并提取HTML响应并解析它以验证成功.
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |