Azure webrole循环和“无法加载文件或程序集System.Web.Http 5.2.0.0”

时间:2014-07-23 22:08:01

标签: c# .net azure asp.net-web-api azure-web-roles

我不能再部署我的天蓝色webrole了,它无限期地骑自行车。所以我穿上了Intellitrace,我发现了这个异常:

  

异常:抛出:"由于无法加载角色入口点   以下例外:    - System.IO.FileLoadException:无法加载文件或程序集&System; Web.Http,Version = 5.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'或其中一个依赖项。该   定位程序集的清单定义与程序集不匹配   参考。 (HRESULT异常:0x80131040)

在我的项目中,web.config和包(Webapi,webhost等)都在5.2.0.0中,所以我不明白为什么Azure试图找到5.0.0.0?

示例:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
你知道吗?感谢

ps:System.Web.Http复制本地:true

1 个答案:

答案 0 :(得分:7)

intellitrace输出告诉你WaIISHost.exe正在崩溃(&#34;无法加载角色入口点&#34;)。但是您的web.config程序集绑定重定向仅影响w3wp.exe进程。你有几个选择:

  1. 检查您的角色入口点(从RoleEntryPoint派生的类,通常是WebRole.cs),以确保引用System.Web 5.2 DLL。
  2. 使用WaIISHost进程的绑定重定向创建.config文件。为此,您将创建一个.dll.config。在默认Web角色项目中,这将是WebRole1.dll.config。