1

今、私が開発したウェブサイトに問題があります。ユーザーが URL の末尾に一連のドット (2 つ以上) を入力すると、IIS からデフォルトの 404 応答が返されます。しかし、このケースは ASP.Net コードで処理されることを望みます。このシーケンスを許可するように IIS を構成しようとしていますが、うまくいきません。私は自分が間違っていることを理解していません。このために、web.config ファイルに次の行を追加します (ここでは、テストのためだけに 3 つのドットを使用しました)。

<system.webServer>
...
            <security>
            <requestFiltering>
              <alwaysAllowedQueryStrings>
                  <add queryString="\..." />
              </alwaysAllowedQueryStrings>
            </requestFiltering>
        </security>
  </system.webServer>

Visual Studio ノードの alwaysAllowedQueryStringsは、青い波線で無効としてマークされています。また、VS は次のメッセージを表示します。したがって、IIS または VS はこのタイプのノードを認識していないようです。しかし、次のリンク:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/alwaysallowedquerystringsは、「alwaysAllowedQueryStrings」がIIS 7.5のデフォルト機能であり、サーバーにIIS 7.5.7600.16385があることを示しています。

IIS のリクエスト フィルタリング機能を再インストールしようとしましたが、残念ながら何も変わりませんでした。

なぜそれがうまくいかないのか、あなたの考えを教えてください。

4

1 に答える 1

0

あなたは間違った道にいると思います。「/Page.someextension」は Web サーバー上のリソースへの有効な要求である可能性がありますが、「/Page.someextension.」これは「Page.someextension」という名前の別のファイルに対する別の要求であるため、そうではない可能性があります。

これはクエリ文字列とは関係ありません。

「/Page.someextension.」のようなリクエストを受け入れたい場合。「Page.someextension」でそれを処理するかもしれませんが、おそらくURL Rewriteが必要なことを行います。

于 2012-10-08T16:40:06.890 に答える