0

Scott Hanselman の記事に基づいて、Webforms プロジェクトでは常にオプション runAllManagedModulesForAllRequests on false を使用していました。

また、いくつかの routes.MapPageRoute 構成が正常に実行されています。

ここで、ICS (インターネット カレンダー) サポートを Web フォーム プロジェクトに追加する必要があります。IHttpHandler で処理できる、ユーザー向けのクリーンで読み取り可能な URL を作成するために、次のコードを追加しました。

routes.Add(new Route("ical/{username}/{somecheck}", new ICalHandler()));

これで、URL は次のようになりました。

http://foo.com/ical/username/abc.ics

localhost (VS2012、Windows 8) では、runAllManagedModulesForAllRequests が false になる可能性があります。

テストサーバー (Win2k8 R2、IIS7.5) で「ページが見つかりません」というエラーが表示されます。しかし、runAllManagedModulesForAllRequests を有効にすると、機能します。

このようにしなければならない場合は、そうする必要があります。しかし、その理由を知りたいのですが...この設定を有効にする必要がある理由を誰か説明できますか?

よろしくお願いします。

4

1 に答える 1

0

MSDN から

IIS 7 に加えられた更新により、runAllManagedModulesForAllRequests 設定が不要になり、ASP.NET ルーティングがネイティブにサポートされます。(更新の詳細については、Microsoft のサポート記事を参照してください。特定の IIS 7.0 または IIS 7.5 ハンドラーが、URL がピリオドで終わらない要求を処理できるようにする更新が利用可能です。) Web サイトが IIS 7 で実行されており、IIS がrunAllManagedModulesForAllRequests を true に設定する必要はありません。実際、これを true に設定することはお勧めしません。リクエストに不要な処理オーバーヘッドが追加されるためです。この設定が true の場合、.htm、.jpg、およびその他の静的ファイルに対するものを含むすべての要求も、ASP.NET 要求パイプラインを通過します。runAllManagedModulesForAllRequests のデフォルト設定は false です。サイトなら」s 構成ファイルで runAllManagedModulesForAllRequests が明示的に true に設定されていない場合、SP1 がインストールされていない Windows 7 で Web サイトを実行すると、必要な更新プログラムが IIS 7 に含まれません。その結果、ルーティングが機能せず、エラーが表示されます。ルーティングが機能しない問題がある場合は、次の手順を実行できます。 Windows 7 を SP1 に更新します。これにより、IIS 7 に更新プログラムが追加されます。前述の Microsoft サポート記事に記載されている更新プログラムをインストールします。その Web サイトの Web.config ファイルで runAllManagedModulesForAllRequests を true に設定します。これにより、リクエストにいくらかのオーバーヘッドが追加されることに注意してください。ルーティングが機能しない問題がある場合は、次の手順を実行できます。 Windows 7 を SP1 に更新します。これにより、IIS 7 に更新プログラムが追加されます。前述の Microsoft サポート記事に記載されている更新プログラムをインストールします。その Web サイトの Web.config ファイルで runAllManagedModulesForAllRequests を true に設定します。これにより、リクエストにいくらかのオーバーヘッドが追加されることに注意してください。ルーティングが機能しない問題がある場合は、次の手順を実行できます。 Windows 7 を SP1 に更新します。これにより、IIS 7 に更新プログラムが追加されます。前述の Microsoft サポート記事に記載されている更新プログラムをインストールします。その Web サイトの Web.config ファイルで runAllManagedModulesForAllRequests を true に設定します。これにより、リクエストにいくらかのオーバーヘッドが追加されることに注意してください。

于 2013-07-26T16:59:47.980 に答える