我在使用Web API 2 / .NET 4.7的Azure应用服务环境(ASE)v2中遇到App Service问题: Request URI在最后一个URI片段中包含一个点,端点在被调用时返回404。
在本地开发环境中,我可以通过更改web.config来解决这个问题:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="ApiURIs-ISAPI-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<remove name="WebDAV" />
<add name="ExtensionlessUrlHandler-Integrated-4.0"
path="*"
verb="*"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ApiURIs-ISAPI-Integrated-4.0"
path="*"
verb="*"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<directoryBrowse enabled="true" />
</system.webServer>
更改是添加ApiURIs-ISAPI-Integrated-4.0
- 处理程序。
如上所述,这在本地工作正常,但在部署到ASE App Service时,这似乎被忽略了,我仍然得到404.
目前,作为一种解决方法,我在URI中添加了一个尾随/
,但我必须为prod修复此问题。