ASP.net Web API和System.Net.Http

时间:2012-10-12 19:03:14

标签: asp.net-mvc asp.net-web-api

按照本文中的示例:http://blogs.msdn.com/b/yaohuang1/archive/2012/05/21/asp-net-web-api-generating-a-web-api-help-page-using-apiexplorer.aspx

我已经设置了所有内容来为我的Web API项目提供文档,但我遇到了一个问题。当我尝试使用@api.HttpMethod时,我在文章的中途得到了他描述的错误。他说你必须在web.config中手动添加对System.Net.Http,Version = 2.0.0.0程序集的引用(即使它默认位于References文件夹中),但如果你按照他添加程序集的例子通过web.config中标记的传统方式.....你会发现它不再是4.5中的有效标记,一切都是通过AssemblyRedirects完成的。我尝试了但无济于事。任何人有这个问题或知道如何帮助改变web.config?我错过了一次会议吗?

Visual Studio 2012 MVC4 Web API项目(不是来自Nuget,VS2012附带的最终版本)

1 个答案:

答案 0 :(得分:25)

<system.web>节点下的Web.config文件中添加以下配置(假设您的应用程序在.NET 4.5上运行,targetFramework属性设置为4.5):

<compilation targetFramework="4.5">
  <assemblies>
    <add assembly="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>

还在<configuration>节点下的根级别添加以下内容:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

这可以解决您的问题。