代码之家  ›  专栏  ›  技术社区  ›  Martin Liversage

如何在IIS7上使用WebDAV上传web.config文件?

  •  1
  • Martin Liversage  · 技术社区  · 14 年前

    但是,我在上传时有问题 web.config 文件到远程站点。一个问题是一旦 web.config配置 web.config配置 归档 Views MVC项目的文件夹有效地阻止了对该文件夹的访问。

    applicationHost.config 文件:

    <configuration>
      <applicationPools>
        <add name="WebDAV Application Pool"
           autoStart="true"
           enableConfigurationOverride="false" />
      </applicationPools>
    </configuration>
    

    有趣的部分是“enableConfigurationOverride”属性:

    什么时候? 真的 ,将忽略此应用程序池的Web.config文件中的所有设置。

    这样做可以上传 web.config配置 意见 不中断对文件夹的访问的文件夹。

    web.config配置 文件到根文件夹。我在 文件以确保请求筛选不会干扰WebDAV:

    <configuration>
      <location path="webdav.mysite.tld">
        <system.webServer>
          <security>
            <requestFiltering>
              <fileExtensions applyToWebDAV="false" />
              <verbs applyToWebDAV="false" />
              <hiddenSegments applyToWebDAV="false" />
            </requestFiltering>
          </security>
        </system.webServer>
      </location>
    </configuration>
    

    特别地 hiddenSegments 通常会阻止访问 但是设置 applyToWebDAV 属性为 应确保在使用WebDAV时不会阻止此文件。

    web.config配置

    错误0x80070057:参数不正确。

    在线路上,似乎HTTP状态 400 Bad Request 被退回。


    改善效果追踪

    目前,我无法重现上述问题。也许我不得不重新开始一些事情或其他未知因素解决了我的问题。底线是我现在可以使用WebDAV发布一个网站。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Martin Liversage    14 年前

    1) 打开 %windir%\system32\inetsrv\config\schema\WEBDAV_schema

    2) 在 configSchema

    <sectionSchema name="system.codedom">
      <element name="compilers">
        <collection addElement="compiler" removeElement="remove" clearElement"clear">
          <attribute name="language" type="string" isCombinedKey="true"/>
          <attribute name="extension" type="string" isCombinedKey="true"/>
          <attribute name="type" type="string"/>
          <attribute name="warningLevel" type="int"/>
          <collection addElement="providerOption">
            <attribute name="name" type="string" isUniqueKey="true"/>
            <attribute name="value" type="string"/>
          </collection>
        </collection>
      </element>
    </sectionSchema>