System.Net.Http丢失了吗?

Mar*_*rkF 3 asp.net async-await dotnet-httpclient

我正在尝试运行Test.aspx:

<%@ Page language="c#" EnableViewState="true" ContentType="text/html" Async="true" %>

<script language="C#" runat="server">

    void Page_Load(Object Src, EventArgs E )
    {
        RegisterAsyncTask(new PageAsyncTask(BindData));
    }

    private async System.Threading.Tasks.Task BindData()
    {
        Response.Write("Hello?<br /><br />");

        using (System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient())
        {
            Response.Write(await httpClient.GetStringAsync("http://www.google.com"));
        }

        Response.Write("<br /><br />Is this thing on?<br /><br />");
    }

</script>
Run Code Online (Sandbox Code Playgroud)

并收到此错误:

Test.aspx(14): error CS0234: The type or namespace name 'Http' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

System.Net.Http.dll程序集在

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
Run Code Online (Sandbox Code Playgroud)

在IIS管理器中,基本设置的应用程序池是ASP.NET v4.0(集成).有没有人碰到这个?

更新:我安装了.Net 4.5.2并添加了以下web.config

<configuration>
  <system.web>
    <httpRuntime targetFramework="4.5" />
   <compilation>
      <assemblies>
         <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </assemblies>
   </compilation>
  </system.web>

</configuration>
Run Code Online (Sandbox Code Playgroud)

它起作用了.

Mar*_*rkF 9

要解决这个问题,我必须补充一下

<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Run Code Online (Sandbox Code Playgroud)

 <httpRuntime targetFramework="4.5.2" />
Run Code Online (Sandbox Code Playgroud)

到web.config