我正在尝试使用WebDAV将ASP.Net 3.5站点发布到IIS 7.5服务器,每次我执行配置文件时都会清空。罪魁祸首是在下面的代码中看到的providerOption elemet。
<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>
但我没有任何权限写入架构文件。这也看起来像其他人应该看到的东西,并且发现了一些人的快速搜索。我看到的唯一选择是“只删除编码部分”,这意味着像LINQ这样的3.5内容将无法工作,因此这是一个非首发。
那么如何将我的网站发布到IIS 7.5并且providerOption元素保持不变?
答案 0 :(得分:0)
好吧,因为我找不到具体的东西,所以我就去了,做了我认为可能解决的问题:我制作了自己的文件并将其放入模式文件中。我把它命名为ThreeFive.xml,并将其放在C:\ Windows \ System32 \ inetsrv \ config \ schema中。该文件的全部内容如下:
<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" />
<attribute name="compilerOptions" type="string" />
<collection addElement="providerOption">
<attribute name="name" required="true" isUniqueKey="true" type="string" />
<attribute name="value" required="true" type="string" />
</collection>
</collection>
</element>
</sectionSchema>
</configSchema>
然后我发布了一个3.5站点,它从appconfig设置中检索信息并做了一些LINQ以确保配置和3.5生效。配置文件没有消隐,LINQ正在按预期工作,所以我很想把它称为解决方案。