
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 ランタイムの起動エラーは通常、イベント ログに表示されるため、発生しているエラーに関する追加情報については、そこで確認してください。