シャドウ コピーを使用しようとすると Web サイトの起動に失敗し、イベント ログに有用な情報が表示されない

シャドウ コピーを使用しようとすると Web サイトの起動に失敗し、イベント ログに有用な情報が表示されない

Windows Server 2022/IIS 10 上で実行されている .NET7 を使用した ASP.NET Blazor Web サイトがあります。

によりアップロード時に問題が発生していますこの問題を回避するために、シャドウ コピーを有効にしてみることにしました。

私は以下の情報に従いましたこのブログ投稿、そしてWeb.configファイルを次のように変更しました...

<?xml version="1.0"
      encoding="utf-8"?>

<configuration>
  <location path="."
            inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore"
             path="*"
             verb="*"
             modules="AspNetCoreModuleV2"
             resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet"
                  arguments=".\MyWebSite.dll"
                  stdoutLogEnabled="false"
                  stdoutLogFile=".\logs\stdout"
                  hostingModel="inprocess">
        <handlerSettings>
          <handlerSetting name="enableShadowCopy"
                          value="true" />
          <handlerSetting name="shadowCopyDirectory"
                          value="../_ShadowCopyDirectory/" />
        </handlerSettings>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

ただし、この結果、Web サイトは起動せず、500 が返されます。セクションをコメント アウトまたは削除すると<handlerSettings>、サイトは正常に動作します。

IIS AspNetCore Module V2サーバーのイベント ログを見ると、ソースと次の説明を含むエントリが表示されます...

構成を読み込めませんでした。例外メッセージ:

これが全体のメッセージです。

IIS が構成ファイルを読み取ることができていないように見えますが、これは通常 XML が無効であることが原因ですが、検証ツールで確認したところ、問題ありませんでした。

そこまで到達していないと思いますが、フォルダー_ShadowCopyDirectoryは存在するので、それは問題ではありません。親パスを有効にしているので、それも問題ではないはずですが、前述したように、そこまで到達していないのではないかと疑っています。

問題のサイトは、この機能をサポートする .NET 7 を使用しているため、これも問題ではないはずです。IIS ログを確認しましたが、読み込みに失敗した回数については何も表示されません。

何が問題なのか、またはどこで詳細情報を確認できるのか、誰かご存知ですか? イベント ログは役に立ちませんでした。

答え1

私も同じ問題を抱えていましたが、web.config を削除して再アップロードすることで解決しました。単に上書きするだけでは役に立ちませんでした。

答え2

ANCMの最新バージョンとWindows ホスティング バンドルインストールされました。.NET 7.0 RTM 以降、その名前を使用して設定が有効になりました。それ以前はプレビュー名のみが機能し、それらの名前がサポートされていない場合はweb.config エラーが発生していました。

また、アプリに Web フォルダーの読み取り権限があることを確認してください。これは難しいことですが、Web ルートで少なくとも読み取りアクセス権を持たないカスタム アカウントを使用した場合に発生する可能性があります。

アプリケーション プールと ASP.NET ランタイムの起動エラーは通常、イベント ログに表示されるため、発生しているエラーに関する追加情報については、そこで確認してください。

関連情報