我正在尝试设置 .net core 2.2 Web api 来使用后动词。除了 get 动词之外的任何其他操作都会返回 405,无论它是在我的本地计算机 (w10 iis eXPRESS 10.0) 还是 Windows 服务器 (2016 R2 IIS 8.0) 上运行。我读过有关在配置文件中禁用 WebDav、添加路由以及完全删除 WebDav 功能的其他文章。我已经做了所有这些都没有效果。我刚刚开始在核心中进行开发,发现这令人困惑,在同一台服务器上是一个在 .net Framework 4.5 上运行的非核心 Web api,它可以毫无错误地处理 GET、PUT、POST、DELETE。是的,我在更改任何配置后重新启动了服务器。以下是我所做的 web.config 更改,最后一项直接来自 MS。在我的机器和服务器上重现相同错误的基本项目在这里https://github.com/FranciscanMedia/error405_core/tree/master它只是启动 VS2019 时获得的标准 Web api 项目。
<system.webServer>
<handlers accessPolicy="Read, Script">
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"
path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule"
scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="0" />
</handlers>
</system.webServer>
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule"/>
</modules>
</system.webServer>
<system.webServer>
<handlers accessPolicy="Read, Script">
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"
path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule"
scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="0" />
</handlers>
</system.webServer>
慕田峪7331174
POPMUISE
智慧大石
慕尼黑8549860
相关分类