IIS主机中的WebApi 2.1 - OWIN

时间:2014-05-11 10:59:58

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

我开始创建一个控制台应用程序并作为自主主机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>

尽管如此,仍然得到同样的例外。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我认为绑定重定向不会为您做任何事情,因为您引用的版本(2.0.2.0)不在绑定重定向中。

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