3

我有一个自定义的 azure 实用程序 dll,它有一种方法可以从中读取配置值,ServiceConfiguration并且还有备用代码可以在没有运行的情况下AppSettings从中读取。此 DLL 可与在本地和生产云环境上运行的 Azure WCF 项目一起正常工作。web.configRoleEntironment

出于某种原因,我将这个 WCF 服务托管在 IIS 上的 Rackspace 服务器上。

在我的本地机器 IIS 上,WCF 服务工作正常,但在 Rackspace 上它崩溃并出现以下错误:

'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' 的类型初始化程序引发了异常。

我已经复制了WindowsAzure.ServiceRuntime.dll,Diagnostics.dllStorageClient.dll在机架空间的 bin 中。它仍然给出同样的错误。

我也试过复制<startup useLegacyV2RuntimeActivationPolicy="true">Web.config,还是不行。

任何的想法?我是否缺少更多云 DLL 或需要更多配置?

4

2 回答 2

6

我最近经历了这种痛苦。它最终成为导致问题的 Azure 项目文件中 Microsoft.WindowsAzure.Diagnostics dll 的不匹配版本。如果您有本地工作副本并从以前的版本成功部署,您可以从 Azure VM 复制已部署的文件并将它们与您的本地集进行比较(对我来说失败的是工作角色)。如果不检查版本以确保所引用的版本包含在 CopyLocal 设置为 true 的部署中。

于 2012-11-29T16:45:13.907 回答
0

我通过在配置文件中添加 useLegacyV2RuntimeActivationPolicy="true" 解决了这个问题

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>

于 2013-07-03T07:37:20.220 回答