我正在开发 .Net Web API,它在调试和本地主机 IIS 上都可以正常工作,但是当我将它发布到服务器时,它开始给出以下错误:-
“消息”:“没有找到与请求 URI 匹配的 HTTP 资源
在服务器上,我们在此 API 的默认站点下有应用程序文件夹,但它在本地 IIS 的默认站点下的应用程序文件夹中工作正常,所以这应该不是问题。
现在我尝试在处理程序中设置正确的动词,如以下 url 中指定但没有工作:
HTTP 404 Page Not Found in Web Api Hosted in IIS 7.5
我还按照以下网址的建议在服务器上安装了 MVC4:
.NET Web Api - 404 - File or directory not found
WebDav 模块,处理程序也可能会出错,所以我也尝试删除它,但它给出了同样的错误。
这是模块、处理程序设置的 Web.config 部分:-
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" 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="*" 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="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
我不在任何地方玩路线。我是否缺少有关 web.config 或服务器 IIS 中的设置/配置的内容?