http处理程序的add元素具有allowPathInfo属性.它是为了什么?

Sha*_*man 2 asp.net httphandler

我正在玩http处理程序.将http处理程序添加到web.config时,为了使其在IIS 7上处理特殊扩展,您需要在system.webServer/handlers元素下注册它.add元素有一个allowPathInfo属性,我无法理解它是什么...

MSDN说:

指定处理程序是否处理URI中的完整路径信息,例如contoso/marketing/imageGallery.aspx.如果值为true,则处理程序处理完整路径contoso/marketing/imageGallery.如果值为false,则处理程序仅处理路径的最后一部分/ imageGallery.

它没有那么多帮助......任何人?

谢谢,谢伊.

bob*_*nce 6

allowPathInfo(AllowPathInfoForScriptMappings在IIS7之前)用于CGI或WSGI之类的处理程序,它们使用在CGI规范中指定的PATH_INFO环境变量,只有路径的尾随部分在PATH_INFO中传递.

默认情况下,IIS错误地将PATH_INFO设置为整个路径,包括已存储在SCRIPT_NAME中的部分,这将混淆依赖于变量标准解释的任何内容.另一方面,ASP需要"坏"设置.

上面引用的例子似乎有点误导.这是当你有一个脚本时/example/example.cgi/foo:SCRIPT_NAME永远是/example/example.cgi; PATH_INFO应该是/foo但如果没有设置allowPathInfo,你就得到了整体/example/example.cgi/foo.

顺便提一下,如果你打开allowPathInfo,IIS将正确获取PATH_INFO ......但PATH_TRANSLATED现在是错误的.叹.