我有一个azure实用程序dll,它有一种方法可以从ServiceConfiguration
读取配置值,并且还有一个回退代码,可以从AppSettings
web.config
读取RoleEntironment
没跑
此DLL适用于在本地和生产云环境中运行的Azure WCF项目。
出于某种原因,我在IIS上的Rackspace服务器上托管这个WCF服务。
在我的本地计算机IIS上,WCF服务正常,但在Rackspace上崩溃时出现以下错误:
“Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment”的类型初始化程序引发了异常。
我已在机架空间的bin中复制了WindowsAzure.ServiceRuntime.dll
,Diagnostics.dll
和StorageClient.dll
。它仍然会出现同样的错误。
我也尝试将<startup useLegacyV2RuntimeActivationPolicy="true">
复制到Web.config
,但它仍无效。
有什么想法吗?我是否缺少更多的云DLL或需要更多配置?
答案 0 :(得分:6)
我最近经历了这种痛苦。它最终成为Azure项目文件中的Microsoft.WindowsAzure.Diagnostics dll的不匹配版本导致问题。如果您具有本地工作副本并且从先前版本成功部署,则可以从Azure VM复制已部署的文件,并将它们与您的本地集进行比较(这是我失败的工作者角色)。如果不检查版本以确保正在引用的版本包含在部署中,且CopyLocal设置为true。
答案 1 :(得分:0)
我通过在配置文件中添加useLegacyV2RuntimeActivationPolicy =“true”解决了这个问题
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>