2012-10-08 59 views
1

现在我遇到了由我开发的网站问题。如果用户在URL的末尾键入一串点(多于2个),他将从IIS获得默认的404响应。但我希望这种情况将由ASP.Net代码处理。我试图配置我的IIS以允许这个序列,但是我在这个过程中没有成功。我不明白我做错了什么。为此,我下一行添加到我的web.config文件(这里我只用于测试3点):如何在IIS 7.5中配置alwaysAllowedQueryStrings

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

在Visual Studio节点alwaysAllowedQueryStrings由蓝色标记波形线为无效。并且VS显示以下消息:“元素'requestFiltering'具有无效的子元素'alwaysAllowedQueryStrings'。期望的可能元素的列表:'fileExtensions,requestLimits,verbbs,hiddenSegments,denyUrlSequences'”。所以看起来像IIS或VS不知道这种类型的节点。但是下一个链接:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/alwaysallowedquerystrings说“alwaysAllowedQueryStrings”是IIS 7.5的默认功能,在服务器上我有IIS 7.5.7600.16385。

我试图重新安装IIS的请求过滤功能,但不幸的是没有任何改变。

请分享您的想法为什么它不适合我。

回答

0

我觉得你走错了路。 “/Page.someextension”可能是对Web服务器上资源的有效请求,“/ Page.someextension”。可能不是,因为这是对名为“Page.someextension”的不同文件的不同请求。

这与查询字符串无关。

如果您想接受像“/Page.someextension”这样的请求。并处理它与“Page.someextension”可能URL Rewrite将做你所需要的。