You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在IIS上运行.NET Core 2时修改自动生成的web.config文件

解决WebAPI发布后自动配置WebDAVModule的方案

我来给你几个靠谱的自动解决办法,再也不用每次发布后手动修改web.config啦:

  • 直接在本地项目web.config中预先配置
    这是最省心的方案,打开你本地项目里的web.config,直接把这段配置加到<system.webServer>节点下:

    <modules runAllManagedModulesForAllRequests="false">
      <remove name="WebDAVModule" />
    </modules>
    

    这样每次通过FTP发布时,这个配置会直接同步到服务器上,不用再手动调整。放心,本地开发环境基本不会受影响——IIS Express默认没启用WebDAV模块,这个配置不会干扰你的本地调试。

  • 使用Web.config变换(适配多环境发布)
    如果你需要区分开发、生产等不同环境,不想在开发环境的web.config里加这段配置,可以用Visual Studio自带的Web.config变换功能:

    1. 右键项目→添加→新建项→选择「Web配置变换」,生成对应发布环境的配置文件(比如Web.Release.config)
    2. 在这个文件里添加XDT变换语法,让发布时自动注入配置:
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="false" xdt:Transform="SetAttributes">
          <remove name="WebDAVModule" xdt:Transform="InsertIfMissing" />
        </modules>
      </system.webServer>
      
      这样只有发布Release版本时,这段配置才会被应用到服务器的web.config中,本地开发的配置保持原样。
  • 服务器端全局禁用WebDAV模块
    如果这台服务器上的所有WebAPI项目都有405问题,可以直接在IIS全局层面解决,一劳永逸:

    1. 打开IIS管理器,点击服务器根节点(不是单个网站)
    2. 找到「模块」功能,在列表里找到WebDAVModule,右键删除
    3. 再进入「处理程序映射」,删除所有和WebDAV相关的处理程序
      注意:要确认服务器上没有其他依赖WebDAV的网站,再执行这个操作。
  • 自动化脚本修改(适合复杂发布流程)
    如果你用了CI/CD工具做自动化发布,可以写个简单的PowerShell脚本,在发布完成后自动连接FTP服务器修改web.config:
    核心逻辑是:下载服务器上的web.config→添加或修改modules节点→重新上传。或者在服务器上设置文件监听脚本,当web.config被更新时自动注入配置。这个方案适合已经有成熟自动化流程的场景。

内容的提问来源于stack exchange,提问作者Matthew Flynn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:24:49