首页 文章

来自IIS中ASP.Net Core 2.0上的PUT或DELETE的405 StatusCode

提问于
浏览
0

这里有很多关于这个问题的帖子,但它们似乎都不适合我们 . 我们仅从IIS获得来自dotnet 2.0应用程序的405状态代码 . 我们构建了相同的应用程序并且针对Ubuntu 16.04没有任何问题 .

流行的修复似乎是更改web.config文件并添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.webServer>
        <modules>
          <remove name="WebDAVModule"/>
        </modules>
         etc.....

但是,这会导致500内部服务器错误 .

我们还尝试过:

<?xml version="1.0" encoding="utf-8"?>
   <configuration>
     <system.webServer>
       <handlers>
         <remove name="WebDAV"/>
  etc......

这导致相同的405状态代码 . 我们还尝试过:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <verbs allowUnlisted="false">
          <add verb="GET" allowed="true" />
          <add verb="POST" allowed="true" />
          <add verb="DELETE" allowed="true" />
          <add verb="PUT" allowed="true" />
        </verbs>
      </requestFiltering>
    </security>
   etc...

这也失败了 .
我们尝试为.net Core 1.1构建应用程序也没有任何乐趣(检查是否有.Core版本是问题) .

每次更改后,我们都会执行命令行

iisreset

确保清除任何“内存”缓存设置 . 我们也尝试每次重启服务器 .

所有这些尝试都失败了......我们仍然得到405 .

我们非常确定这是一个IIS问题,因为应用程序在Ubuntu上正常运行,但我们的 生产环境 服务器场都是Win / IIS,所以我们必须让它工作 .

我未决的解决方法是使用NO DELETE或PUT动词对我们的控制器进行编码;将所有内容更改为GET和POST .

还有谁能破解这个坚果?

提前致谢 .

1 回答

  • 0

    不完全确定原因,但我们删除了服务器上的IIS实例,并仅使用dotnet核心处理程序重新安装它 .

    该网站现在按预期工作 .

相关问题