【发布时间】:2011-03-14 19:43:02
【问题描述】:
我有一个带有 HttpHandler 的应用程序,可以处理对 .js 文件的任何请求。我只希望这个处理程序处理应用程序根目录中请求的 *.js 文件。
处理程序映射如下所示:
<add name="HandleJS" path="*.js" verb="*" type="MyApp.JsHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
目前,此处理程序处理所有请求的 *.js 文件。这是我想要的行为示例。
此请求将由处理程序处理:
http://localhost/myapps/approot/script.js
而这个不会由处理程序处理:
http://localhost/myapps/approot/dontProcessMe/script.js
我真的很想避免在处理程序路径中包含完整的绝对路径,所以我先尝试了其他一些方法。
看起来add 元素的path 属性不允许使用~/ 应用程序根机制,因此设置path="~/*.js" 不起作用。
我还尝试复制 IIS 中内置的 StaticFile 处理程序并执行以下操作:
<add name="MyStaticFiles" path="*/*.js" verb="*" modules="StaticFileModule" />
或
<add name="MyStaticFiles" path="dontProcessMe/*.js" verb="*" modules="StaticFileModule" />
两者都只返回一个 HTTP 状态为 200 的空白响应。
帮助我欧比旺克诺比,你是我唯一的希望。
【问题讨论】:
标签: asp.net iis-7 httphandler