IIS 7.5 Api 调用不起作用(HTTP 404)

IIS 7.5 Api 调用不起作用(HTTP 404)

我正在构建的 API 在 Visual Studio 中的 IIS express 中以及使用与实时服务器相同的 IIS 的测试服务器上运行。在 IIS express 和测试服务器上,API 都可以正常工作,但是当我们将其放在实时服务器上时,它一直返回 404 响应。

到目前为止我找到了这篇文章:在 IIS Express 中解决 404 并在这篇文章中找到了解释:IIS 7 中的请求过滤

据我所知,所有设置都是默认设置,但除了动词之外,我还需要检查哪些错误?

编辑:这似乎与 web.config 中的设置有关。托管管道模式设置为集成(经典模式也会导致此问题)并添加:<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> 来源。现在 api 返回了 http 500 错误,但我必须在代码中修复这个问题。

答案1

在谷歌上问了好久之后,我发现地点。

在页面的末尾,我必须将 svc-Integrated-4.0 路径设置为"*"默认值,"*.svc"这为我解决了这个问题!

编辑@Scott H Web.config 添加代码:

<configuration>
 <system.webServer>
  <handlers>
   <remove name="svc-Integrated-4.0" />
   <add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
 </system.webServer>
</configuration>

相关内容