3

静的リクエストがパフォーマンスに影響を与えるのを避けるために、ASP.NET v4.0拡張機能のないURL機能を使用したいのですが、機能しません。

私の環境:

  1. WindowsServerSP2およびIIS6
  2. asp.netMVC3と.net4
  3. サイトはASP.NET4.0用に構成されており、仮想フォルダーはありません
  4. isapiの書き換えはありません

「http://domain.com/home/」のようなURLをリクエストすると、「/ home / eurl.axd / f7e1f50533b94f47869a8856c16dffdf/」404エラーが発生します。

エラーメッセージは次のことを示しています:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.1

aspnet_filter.dllは拡張子のないURLに「/eurl.axd/GUID」を追加し、aspnet_isapi.dllは「/eurl.axd/GUID」を削除しないようです。

この問題を解決する方法を知りたいですか?(拡張子のないURLが必要で、ワイルドカードスクリプトマッピングを使用できません)

ありがとう

更新-解決済み

ルートWebサイトのISAPIフィルターでv2.0aspnet_isapi.dllを削除します

4

2 に答える 2

1

ASP.NET v4拡張なしURL機能を使用するには、次のリストを確認してください。

1)v4.0 aspnet_filter.dllは、WebサーバーレベルでISAPIフィルターとして登録されます。

2)「。axd」は、Webサイトレベルでv4.0aspnet_isapi.dllにマップされたスクリプトです。

3)Webサイトに読み取りとスクリプトの許可があります。

4)レジストリの「EnableExtensionlessUrls」が設定されていないか、1に設定されています。

5)Webサイトをasp.net4.0に構成する

6)v2.0 aspnet_filter.dllが登録されていません。ルートWebサイトのISAPIフィルターリストを確認してください(これにより問題が発生します)

上記がチェックアウトした場合、必要な他の唯一のものは、ルーティングテーブルまたはURLをマネージハンドラーに再マップするASP.NETコードです。

于 2012-07-05T02:26:39.910 に答える
0

IIS6とIIS7には2つの異なるパイプラインがあるため、ASP.NETアプリケーションはこれら2つの環境で異なる方法で実行されることに注意してください。

読んでください:IIS7とのASP.NET統合

IIS 7では、ASP.NET要求処理パイプラインはIISパイプラインを直接オーバーレイし、基本的に、プラグインする代わりにラッパーを提供します。

しかし

IIS 6.0およびそれ以前のリリースでは、ASP.NETはIISISAPI拡張機能として実装されていました。

于 2012-07-04T14:57:08.397 に答える