11

ASP.NET に関する問題を発見しましたが、少なくとも 1 人は困惑させられました。HttpModule を使用して、Web アプリケーションへのワイルドカード リクエストを処理しようとしていました。生成された URL は動的で、数百文字になる可能性があります。残念ながら、aspnet_isapi.dll ファイルには、URL のパスの長さを 260 文字にハードコードされた MAX_PATH に制限する制限があるようです。

他の誰かがこれに遭遇し、この制限を回避する方法を見つけましたか? クエリ文字列パラメーターはオプションではありません。

ありがとう、グレッグ・バラード

4

7 に答える 7

8

Mvc2と.Net Framework 4.0を使用してこの問題を解決するために、web.configで次を使用することになりました

<httpRuntime maxUrlLength="1000" relaxedUrlToFileSystemMapping="true" />
于 2011-04-07T18:18:57.873 に答える
8

これは aspnet_isapi.dll の既知の問題であり、現在回避策はありません。組み込みの Visual Studio Web サーバー (別名 Cassini) でサイトを実行しているときにこの問題が発生しない理由は、サイトがすべてマネージ コードであり、aspnet_isapi.dll に依存していないためです。

これは、ASP.NET の将来のバージョンで対処される予定です。

于 2008-11-05T17:24:25.560 に答える
3

問題は実際には ASP.NET ではなく、Windows にあります。Windows は MAX_PATH を 260 に設定しており、IIS がより長いファイル名の要求を受け取ると失敗します。この KBase の記事は既にご覧になっていると思いますが、それ以外の方はhttp://support.microsoft.com/kb/q177665/をご覧ください。適用先: セクションは、これが NT 3.51 から Vista および Server 2003 までの予想される動作であることを示しています。

回避策として、私は同様の状況にありましたが、クエリ文字列パラメーターを回避する試みを放棄し、とにかく実行しました。

于 2008-11-05T14:42:36.853 に答える
2

ご回答有難うございます。正確な記事は見つかりませんでしたが、同様の記事が見つかりました。ただし、これは IIS の制限ではありません。要求でより長いパスを IIS に渡すと、正しい応答が返されます。簡単な html ページで試すことで確認できます。この問題は、aspnet_isapi.dll を使用して要求を処理する場合にのみ発生します。Visual Studio 内の統合デバッグ サーバーでさえ、260 を超える長いパスを処理できます。

于 2008-11-05T15:22:30.797 に答える
0

IIRFなどの URL 書き換え ISAPI を使用して、aspnet_isapi が処理できるものに URL を書き換えることができます。

于 2008-11-18T16:38:36.700 に答える