托管的web api可通过浏览器访问,但不能通过应用程序访问

时间:2018-01-16 09:04:43

标签: asp.net-mvc-4 asp.net-web-api2 iis-8

我在iis 10.0中托管了web api,然后通过浏览器访问它的方法。 但是同样的方法无法通过我的MVC应用程序访问。 获取404未找到问题。

但是当我运行web api应用程序时,我可以通过应用程序访问方法。

我做了一些google搜索,发现需要在托管的web api web.config中设置一些处理程序。但它对我也没有用。

下面是我在web api web.config中使用的完整的system.webserver标记。



<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
      <remove name="FormsAuthentication" />
    </modules>
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
	  <remove name="UrlRoutingModule-4.0" />
	  <remove name="ApiURIs-ISAPI-Integrated-4.0" />
    <add name="UrlRoutingModule-4.0" path="*." type="System.Web.Routing.UrlRoutingModule" preCondition="" verb="GET,HEAD,POST,DEBUG,PUT,DELETE" />
	<add name="ApiURIs-ISAPI-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
      <!--<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />-->
    </handlers>
  </system.webServer>
&#13;
&#13;
&#13;

需要帮助。

1 个答案:

答案 0 :(得分:1)

在应用程序中传递Web api URL时,我犯了一些错误。

例如:对于我正在使用的Web API根网址,如下所示:

http://localhost:25968

但是它应该像:http://localhost:25968/

由于没有通过应用程序访问Web api方法,因此缺少了最后一个斜杠。