【问题标题】:Could not load file or assembly Microsoft.Owin on Azure无法在 Azure 上加载文件或程序集 Microsoft.Owin
【发布时间】:2017-06-30 02:32:04
【问题描述】:

我的 ASP.Net MVC 应用程序在 IIS 上本地运行时工作正常,但在部署到 Azure 时出现以下错误:

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 版。我原以为以下 bindingRedirect 会强制 SignalR 使用已安装的 3.0.1 版(已验证存在,Azure 上 /bin 中的 3.0.1 版):

  <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。
  • 强制重新安装需要 Microsoft.Owin 2.1.0 和 NuGet 的 SignalR 组件 (Microsoft.AspNet.SignalR.Core)
  • 将 Microsoft.Owin 的 bindingRedirect 的 oldVersion 更改为“0.0.0.0-2.1.0.0”(这没有意义)
  • 删除 Microsoft.Owin 的 bindingRedirect
  • 在 Kudu 中使用rd /Q /S 删除站点目录中的所有文件和文件夹

还有什么我可以尝试的吗?

【问题讨论】:

    标签: asp.net azure signalr owin assembly-binding-redirect


    【解决方案1】:

    很想找到问题的根本原因,比如为什么它在本地工作,但不能在 Azure 中工作,但基于此answer,您可能应该尝试安装 Microsoft OWIN 本身 - 通过 NuGet,直接安装到失败的项目。

    【讨论】:

    • Owin 1.0.0 包本身已经安装在项目中。
    • @RyanShripat 检查其他项目(如果有)并确保它们都引用相同的版本。我建议检查包管理器,看看是否有任何更新。
    猜你喜欢
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2017-07-25
    • 2018-10-13
    相关资源
    最近更新 更多