1
我的ASP.Net MVC應用程序工作正常,但是當部署到Azure中提供了以下錯誤:無法加載文件或程序集Microsoft.Owin在Azure上時,IIS本地運行
Could not load file or assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
這是一塊堆棧跟蹤,導致我相信SignalR是一個潛在的罪魁禍首:
[FileLoadException: Could not load file or assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
Owin.OwinExtensions.MapSignalR(IAppBuilder builder, String path, HubConfiguration configuration) +0
Owin.OwinExtensions.MapSignalR(IAppBuilder builder, HubConfiguration configuration) +12
QuikWorx.O365Web.Startup.Configuration(IAppBuilder app) +169
根據的NuGet,我有版本Microsoft.Owin 3.0.1上的應用程序安裝,但顯然事情(SignalR)需要2.1版本0.0。我本來以爲以下bindingRedirect將迫使SignalR使用已安裝的版本3.0.1(驗證目前,3.0.1版在Azure上/箱):
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
...但很可惜,這不是案子。
我也嘗試沒有成功如下:用的NuGet Microsoft.Owin 3.0.1
- 強制重新安裝。
- 強制的SignalR部件的重裝(Microsoft.AspNet.SignalR.Core)需要Microsoft.Owin 2.1.0用的NuGet
- 改變bindingRedirect的oldVersion爲Microsoft.Owin爲「0.0.0.0-2.1.0.0 「(這是沒有意義的)
- 卸下bindingRedirect爲Microsoft.Owin
- 刪除所有文件和文件夾在捻
使用rd /Q /S
網站目錄還有什麼,我可以嘗試?
Owin 1.0.0包本身已經安裝在項目中。 –
@RyanShripat檢查其他項目(如果有的話),並確保它們都引用相同的版本。我會建議檢查包管理器,看看是否有更新。 – Nkosi