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 显示以下消息:“元素 'requestFiltering' 有一个无效的子元素 'alwaysAllowedQueryStrings'。预期的可能元素列表:'fileExtensions、requestLimits、verbs、hiddenSegments、denyUrlSequences'”。所以似乎 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 回答