157

textarea要素の値からファイルクライアント側を作成したいサイトを構築しています。

これを行うためのコードがありますが、このエラーが発生します

HTTPエラー404.15-見つかりませんリクエストフィルタリングモジュールは、クエリ文字列が長すぎるリクエストを拒否するように構成されています。

これをオーバーライドして、任意のサイズのリクエストを処理できるようにする方法はありますか?

そうでない場合、filesystem / active xオブジェクトを使用せずにクライアント側でファイルを生成する方法はありますか?

ありがとう

4

10 に答える 10

277

以下をweb.configに追加します。

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768"/>
    </requestFiltering>
  </security>
</system.webServer>

見る:

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits

コメントを反映するように更新されました。

requestFilteringのrequestLimits要素[IIS設定スキーマ]

web.configにも以下を追加する必要があるかもしれません

<system.web>
    <httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>

参照:httpRuntime Element(ASP.NET設定スキーマ)

もちろん、上記の構成設定の番号(32768および65536)は単なる例です。これらの正確な値を使用する必要はありません。

于 2012-07-24T17:50:28.497 に答える
34

私の場合(Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app / .Net Framework 4.5)、30分間の試行錯誤の後で実際に機能したのは、タグにmaxQueryStringLengthプロパティを設定することでした。<httpRuntime>

<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />

maxQueryStringLengthデフォルトは2048

詳細はこちら:

許可されるURLの範囲を拡大する


@MattVarblow<system.webServer>が示唆するように設定しようとしましたが、機能しませんでした...これは、Windows8の開発マシンでIISExpress(IIS 8に基づく)を使用しているためです。

アプリを運用環境(IIS7を搭載したWindowsServer 2008 R2)に展開すると、IE10は長いクエリ文字列を含むAJAXリクエストで404エラーを返し始めました。次に、問題はクエリ文字列に関連していると考え、@MattVarblowの回答を試しました。IIS7で動作しました。:)

于 2013-05-24T07:41:01.170 に答える
9

IIS 8.5 Webサーバーの実行中にこの問題が発生した場合は、次の方法を使用できます。

まず、作業中のIISサイトで[フィルタリングの要求]モジュールを見つけて、ダブルクリックします...

ここに画像の説明を入力してください

次に、下に表示されている白い領域を右クリックして、[機能設定の編集]というコンテキストメニューオプションをクリックする必要があります。

ここに画像の説明を入力してください

次に、最後に行うことは、「最大クエリ文字列(バイト)」の値を2048から必要に応じて5000などのより適切な値に変更することです。

ここに画像の説明を入力してください

于 2018-10-08T17:18:57.893 に答える
6

他に確認する必要があります。サイトでMVCを使用している場合、ログインコントローラークラスに[承認]を追加すると、これが発生する可能性があります。許可されていないため、ログイン方法にアクセスできません。そのため、ログイン方法->ブームにリダイレクトされます。

于 2016-08-05T01:55:27.300 に答える
1

また、ajax呼び出しパラメーターで大きな文字列を渡すとエラーが発生します。

そのため、常にajaxでタイプpostを使用すると、問題が100%解決 され、web.configで長さを設定する必要はありません。

// var UserId=1000ユーザーIDの配列

$ .ajax({global:false、url:SitePath + "/ User / getAussizzMembersData"、 "data":{UserIds:UserId}、 "type": "POST"、 "dataType": "JSON"}}

于 2019-11-02T05:40:12.353 に答える
0

ASPWebアプリケーションをIIS8に展開しようとすると、同様の問題が発生しました。これを修正するために、MattとLenielが上記で提案したように実行しました。ただし、匿名認証を有効にするには、サイトの認証設定も構成する必要がありました。そしてそれは私のために働いた。

于 2016-05-31T10:42:08.640 に答える
0

ユーザーがまだ認証されていないため、ログインページのActionResult関数に[AllowAnonymous]を追加する必要がありました。

于 2018-02-20T17:13:12.027 に答える
0

Webサイトで認証を使用しているが、IISで正しい認証方法(Basic、Formsなど)が設定されていない場合、ブラウザーはリダイレクトループでスタックします。これにより、リダイレクトURLが爆発するまでますます長くなります。

于 2018-02-21T13:05:08.630 に答える
0

Visual Studioからアプリを実行しているときに、IIS Expressを使用しているときにこれが発生した場合は、最初に、アプリケーションで使用されているapplicationhost.configファイルを見つける必要があります。applicationhost.configファイルを見つける方法については、 https://stackoverflow.com/a/41553876/1849880の回答を参照してください。次に、上記で説明したようにmaxQueryString値を変更できます。

于 2021-08-06T01:22:50.657 に答える
-1

HTTPエラー404.15-見つかりませんリクエストフィルタリングモジュールは、クエリ文字列が長すぎるリクエストを拒否するように構成されています。

この問題を解決するには、ソースコードでFormタグのプロパティmethodがget /setstateであるかどうかを確認します。

その場合、methodプロパティを削除する必要があります。

于 2014-05-14T04:52:52.380 に答える