【问题标题】:WebApi 2.1 in IIS Hosting - OWINIIS 托管中的 WebApi 2.1 - OWIN
【发布时间】:2014-05-11 10:59:58
【问题描述】:

我首先创建了一个控制台应用程序并作为自托管 OWIN 应用程序运行。已安装 Web API,一切正常。

现在我安装了 SystemWeb nuget 包,将应用程序类型更改为“类库”,仅将输出文件夹更改为“bin\”。

当我使用 IIS Express 运行应用程序时,第一次加载应用程序时,我收到一个异常:

Could not load file or assembly 'Microsoft.Owin, Version=2.0.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)

我意识到 System.Web.Http.Owin 正在引用 Microsoft.Owin -V 2.0.2.0。

在 App.config 中存在以下内容:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
  </dependentAssembly>
</assemblyBinding>

尽管如此,仍然得到相同的异常。有什么想法吗?

谢谢

【问题讨论】:

    标签: owin asp.net-web-api2 katana


    【解决方案1】:

    我有这个。复制 app.config 并将其重命名为 web.config。这将使 IIS/IIS Express 能够使用必要的绑定重定向。

    【讨论】:

    • 没有解决问题!我必须从 VS 2013 中的空网站开始,删除所有 System.Web 引用,从自托管开始,然后移至 IIS,一切正常!从带有 Self Host 的控制台应用程序开始,然后移至 IIS,无法正常工作!
    • 嗯,不知道你当时的问题是什么,因为上面的内容肯定对我有用。至少你现在就走了!
    • 是的,我想从控制台开始,但由于某些原因,没有工作。在所有情况下都感谢
    • @Bill,某些 xmlns 属性可能会导致问题:codeproject.com/Articles/667286/…
    【解决方案2】:

    在“引用”列表中,将 Owin DLL 设置为在编译时“始终复制”。

    【讨论】:

    • 用那个 DLL 尝试了一个应用程序,我不需要 Web.config 中的所有这些行。刚刚在 BIN 文件夹中有 OWIN dll。它刚刚奏效。试试看……
    • 创建一个控制台应用程序,安装SelfHost nuget包,然后安装WebAPI nuget包,然后安装SystemWeb包,并尝试从iis express运行应用程序。
    【解决方案3】:

    我认为绑定重定向对您没有任何帮助,因为您引用的版本 (2.0.2.0) 不在绑定重定向中。

    您可以使用Assembly Binding Log Viewer (Fuslogvw.exe) 工具来调试类型加载异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      相关资源
      最近更新 更多