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

Hosted web api is accessible through browser but not through application

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

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

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

下面是我在网络中使用的完整 system.webserver 标签 api web.config.

<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>

需要帮助。

我在应用程序中通过 Web api url 时犯了一些错误。

例如:对于 web api Root url 我使用如下:

http://localhost:25968

但它应该是这样的:http://localhost:25968/

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