
私は、asp.net 4.0 アプリケーションを実行している 2 台の Windows 2008 R2 サーバーを持っています。問題が発生しているサーバーは、実際には asp.net ページを問題なく読み込みますが、ajax 呼び出しがある場合は機能しません。このサーバーには、他のサーバーにあるような .net 4.0 固有のハンドラー マッピングが IIS にないことに気付きました。
文字通り、すべての .net 4.0 マッピング (.axd、.soap、.cshtm、.ashx、さらには .aspx) が欠落しています。「aspnet_regiis -ir」を実行してみましたが、効果はありませんでした。.net 4.0 フレームワークを再インストールする必要がありますか? 欠落しているマッピングをすべて手動で追加する必要がありますか? 他に何か問題がありますか?
私がしたくないのは、web.config に大量のハンドラーを追加することです。それらは、正常に動作しているサーバーでは必要ないので、壊れたサーバーでは必要ありません。
答え1
ご回答ありがとうございます。ただし、アプリケーション ハンドラーと同じルート ハンドラーはすでに確認済みで、.net 4 のものがすべて欠落しています。
問題は解決しました。%WinDir%\Microsoft.NET\Framework64\v4.0.30319 で aspnet_regiis を実行するだけで済みました。
IIS 8 では、「Windows 機能のオン/オフ」に移動し、「インターネット インフォメーション サービス > World Wide Web サービス > アプリケーション開発機能」に移動して、「ASP.Net 3.5、ASP.Net 4.5、および ISAPI 拡張機能とフィルター」を選択する必要があります。
答え2
根源はサーバーノードIIS には適切なハンドラがすべてありましたが、何らかの理由で問題の Web サイト (つまり、デフォルトのWebサイト)にはハンドラがありませんでした。継承に戻すIISの右ナビゲーションでハンドラーマッピングセクションとすべてが正常に動作しています。
答え3
「-i」パラメータを追加することを忘れないでください。
C:\windows\system32>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.
exe -i
Microsoft (R) ASP.NET RegIIS version 4.0.30319.17929
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation. All rights reserved.
Start installing ASP.NET (4.0.30319.17929).
.............
Finished installing ASP.NET (4.0.30319.17929).
C:\windows\system32>
答え4
Windows Server 2019 では、「役割と機能の追加」ウィザードを使用して、「ASP.NET 4.7」とウィザードが提案する信頼性モジュールをインストールする必要があります。これにより、IIS 内のすべての ASP.NET モジュールとハンドラーが有効になります。