web-dev-qa-db-ja.com

IIS7 / appcmd-httpError構成をインポートするとエラーが発生します

アプリケーションのIIS)の構成から先のとがったクリック感を取り除くために、私はappcmdを検討してきました。具体的には、構成ツリーをエクスポートして、最小限の手間で再適用する機能です。

通常、これにより、エクスポートされた構成が得られます。

appcmd list Config /section:httpProtocol /config /xml > template.xml

後日、次のコマンドで再インポートできます。

appcmd set Config /in < template.xml

変更が適用されます。これは、カスタムエラーページ以外のすべてに適しています。

私はこれらを次のようにエクスポートしました:

appcmd list Config "Default Web Site/intranet" /section:httpErrors /config /xml > customerrors.xml

しかし、私が試してインポートしようとすると:

appcmd set Config /in < customerrors.xml

次のエラーが発生します。

ERROR ( hresult:8007000d, message:The input contained an error element, which may
indicate that the operation producing the input has failed.  )

はい、それは私が次のようなerrohandlerエントリをインポートしているためです。

<?xml version="1.0" encoding="UTF-8"?>
<appcmd>
  <CONFIG CONFIG.SECTION="system.webServer/httpErrors" path="MACHINE/WEBROOT/APPHOST/Default Web Site/intranet" overrideMode="Inherit"
locked="false">
    <system.webServer-httpErrors errorMode="Custom">
      <error statusCode="500" prefixLanguageFilePath="" path="/intranet/ErrorPages/500-100.asp" responseMode="ExecuteURL" />
      <error statusCode="500" subStatusCode="100" path="/intranet/ErrorPages/500-100.asp" responseMode="ExecuteURL" />
    </system.webServer-httpErrors>
  </CONFIG>
</appcmd>

...これはappcmdが私にくれたものです(これは、「error」要素が本当に必要なものであることを意味します)。これはappcmdが巧妙になりすぎた場合ですか、それとも途方もなく明白な何かが欠けていますか?

乾杯!

1
Chris J

おかしい。したがって、appcmd importは、この正当な状況を考慮せずに、Wordの「エラー」を実際のエラーとして監視しているようです。私はあなたのためにそれについてもっと情報を見つけることができるかどうか見ます。

それまでの間、appcmdを使用した解決策として、構文を見つける最良の方法は、構成エディターを使用することです。必要な変更を加えてから、右側の[スクリプトの生成]に移動し、[AppCmd]タブをクリックします。これは、必要な構文を取得するための優れたトリックです。

HttpErrorsを実行する方法の例を次に示します。

appcmd.exe set config "Default Web Site" -section:system.webServer/httpErrors /+"[statusCode='503',path='503.htm']"
2