0

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 を検証するために使用されており、XML の一部として providerOptions が含まれていません。次のようなものを追加することで、ファイルを変更できるように何かを追加できます。

 <collection addElement = "providerOption">
  <attribute name = "name" required = "true" isUniqueKey = "true" type = "string" />
  <attribute name = "value" required = "true" type = "string" />
 </collection>

しかし、スキーマ ファイルに書き込む権限がありません。これはまた、他の人が見るべきもののように見え、簡単な検索で何人かの人々が見つかりました. 私が見た唯一のオプションは、「コードダムセクションを削除するだけ」です。これは、LINQ などの 3.5 が機能しないことを意味するため、初心者ではありません。

では、providerOption 要素を変更せずに Web サイトを IIS 7.5 に発行するにはどうすればよいでしょうか。

4

1 に答える 1

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>

次に、appconfig 設定から情報を取得する 3.5 サイトを公開し、LINQ を実行して構成と 3.5 が有効であることを確認しました。構成ファイルは空白ではなく、LINQ は期待どおりに機能しているため、これを解決策と呼びたいと思います。

于 2012-10-02T18:53:27.183 に答える