我正在尝试使用 WebDAV 将 ASP.Net 3.5 站点发布到 IIS 7.5 服务器,并且每次执行配置文件时都会清空。罪魁祸首是下面代码中的 providerOption 元素。
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
C:\Windows\System32\inetsrv\config\schema 中的 FX_schema.xml 文件用于验证站点的 Web.config,它不包含 providerOptions 作为 XML 的一部分。我可以添加一些内容以允许修改文件以通过添加如下内容来允许它:
<collection addElement = "providerOption">
<attribute name = "name" required = "true" isUniqueKey = "true" type = "string" />
<attribute name = "value" required = "true" type = "string" />
</collection>
但我没有任何权限写入架构文件。这看起来也像是其他人应该看到的东西,并且快速搜索发现有些人是。我看到的唯一选项是“只需删除 codedom 部分”,这意味着 3.5 的东西,比如 LINQ,将无法工作,所以这是一个非首发。
那么,如何在 providerOption 元素完好无损的情况下将我的网站发布到 IIS 7.5?