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

Rap*_*aph 3 .net c# azure azure-web-roles asp.net-web-api

我再也无法部署我的天蓝色webrole,它无限循环.所以我穿上了Intellitrace,我发现了这个异常:

异常:抛出:"由于以下异常,无法加载角色入口点: - System.IO.FileLoadException:无法加载文件或程序集'System.Web.Http,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 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>
Run Code Online (Sandbox Code Playgroud)

你有什么主意吗 ?谢谢

ps:System.Web.Http得到copy local:true

kwi*_*ill 7

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

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