Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf Nhibernate和windowsazure_Wcf_Nhibernate_Azure - Fatal编程技术网

Wcf Nhibernate和windowsazure

Wcf Nhibernate和windowsazure,wcf,nhibernate,azure,Wcf,Nhibernate,Azure,我正在WindowsAzure上构建RESTWCF应用程序。在localhost中,我可以很好地连接并使用SQL Azure和NHibernate,但每当我尝试将应用程序移动到Windows Azure时,它都无法加载NHibernate正常工作所需的DLL 我曾在论坛上看到,如果NHibernate DLL是使用x86目标编译的,则可能会出现此问题,并且由于Windows Azure在x64上运行,因此我尝试将构建的目标修改为x64(尽管我运行的是Windows 7 x86) 它显示的问题是

我正在WindowsAzure上构建RESTWCF应用程序。在localhost中,我可以很好地连接并使用SQL Azure和NHibernate,但每当我尝试将应用程序移动到Windows Azure时,它都无法加载NHibernate正常工作所需的DLL

我曾在论坛上看到,如果NHibernate DLL是使用x86目标编译的,则可能会出现此问题,并且由于Windows Azure在x64上运行,因此我尝试将构建的目标修改为x64(尽管我运行的是Windows 7 x86)

它显示的问题是

服务器遇到错误 处理请求。例外 消息为“无法加载类型” 'NHibernate.ByteCode.Castle.proxyFactory, NHibernate.字节码.城堡' 代理工厂类的配置。 可能的原因有:-以下 字节码提供程序集 没有部署使用的类型名 初始化 “proxyfactory.factory\u类”属性 会话工厂部分的 结构合理。解决方案:确认 部署文件夹包含以下内容之一: 下列组件: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll'。看见 服务器日志了解更多详细信息


以前有人见过这个错误吗?如何解决此问题?

您是否在项目中所有引用程序集的属性中设置了“复制本地”选项?

因为这与以下问题相同:

  • 检查项目是否引用了NHibernate.ByteCode.LinFu.dll或NHibernate.ByteCode.Castle.dll中的一个
  • 确保该dll上的“复制本地”为true

事实证明,这与Azure没有任何关系,Azure运行起来相当轻松

为了实现这一点,我必须对msbuild进程进行黑客攻击,他“足够聪明”地省去了Castle dll。如上所述,这不应该是永久性修复,因为您将需要修改msbuild配置,使其包含所需的dll。我只是还不知道怎么做,也许StackOverflow的天才们可以帮助我们

这是一篇帮助我的博客文章,与您分享以供将来参考:


听起来您在部署中缺少DLL。这有用吗?这是同样的问题,但我真的不知道如何检查复制到Azure存储以进行部署的dll。是的,所有nHibernate dll的Copy Local都设置为True。Microsoft DLL已将“复制本地”设置为False。