繁体   English   中英

如何在 .NET 5.0 中从 IIS 中删除 WebDav?

[英]How to remove WebDav from IIS, in .NET 5.0?

我们有一个 Web API Web 服务站点,内置于 .NET 4.5.2,我们正在尝试迁移到 Z3203CB0EF9EDB9087.

我们遇到了一个似乎很常见的问题——当我们将站点部署到我们的登台环境时,PUT 和 DELETE 方法都不起作用。 当我们使用生成的 Swagger UI 测试它们时,我们得到 500 个错误。

注意 - 我们没有通过 VS2019 调试器在 IIS Express 中看到这些错误。

我们浏览web,当然是找到答案了:

如何在运行 REST PUT 或 DELETE 请求时修复 500 服务器错误?

所以我们创建了一个 web.config:

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

这会导致不同的问题。

  1. 当我们尝试通过 VS2019 调试器在 IIS Express 中运行站点时,我们得到 HTTP 500 错误,并且
  2. 运行该站点会修改 web.config。

web.config 现在看起来像:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="WebDAV" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <modules>
      <remove name="WebDAVModule" />
    </modules>
    <aspNetCore stdoutLogEnabled="false" hostingModel="InProcess" />
  </system.webServer>
</configuration>

注意添加了 aspNetCore。

所以,事情就是这样。

  • 我们需要它在部署到 IIS以及在本地运行时都能正常工作,并且
  • 在构建过程中,我们不能有部分生成的源文件。 我们的整个构建和版本控制系统是建立在这样的想法之上的:有些文件包含开发人员编写的代码,有些文件是在构建过程中生成的。 前者我们保存版本控制,后者我们不保存。 我们可以将 web.config 添加到我们的版本控制中,但如果这样做,我们将无法在构建或运行期间更改其内容。

那么我们该怎么办?

当部署在 IIS 中以及在调试时在 IIS Express 中运行时,我们如何使其工作?

我们如何处理在调试运行期间修改的 web.config?

这类问题的出现似乎有很多原因,我不能假装找到了所有这些问题的答案。

在这种特殊情况下,问题在于 VS 在 web.config 中插入了错误的元素。

添加 <handlers/> 和 <modules/> 元素以删除 WebDAV 导致 VS 插入 <aspNetCore/> 元素:

<aspNetCore stdoutLogEnabled="false" hostingModel="InProcess" />

并且插入的元素缺少必需的 processPath= 属性。

<aspNetCore processPath="dotnet" stdoutLogEnabled="false" hostingModel="InProcess" />

最好关闭 WebDAV Publishing。 为此:打开“打开或关闭 Windows 功能”。 现在在 Internet Information Services\World Wide Web Services\Common HTTP Features\WebDAV Publishing 中。 取消选中它并单击确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM