当URL以"静态"结束时,IIS ASP集成管道模式不会调用正确的模块文件名

时间:2014-07-02 22:23:13

标签: asp.net iis integrated-pipeline-mode

我有一个充当"代理"的模块。我需要解决一些跨域脚本问题。因此,服务器将获取外部内容并将其返回给客户端,并且客户端将保留在同一域中。

我的问题是当有一个"静态文件"在url末尾的名字,我的处理程序没有被调用...这是一个例子:

 http://my.url.com/myproxy.ashx/site1/getsomestuff.aspx?parm1=value1

我收到HTTP错误404找不到文件url myproxy.ashx / site1 / getsomestuff.aspx

但是,如果我修改了上面的URL,那么URL的末尾没有虚线文件名,如下所示:

 http://my.url.com/myproxy.ashx/site1/getsomestuff_aspx?parm1=value1

调用myproxy.ashx的处理程序。如果我在生成实际查询的URL时将一些kludge代码更改为getsomestuff_aspx到getsomestuff.aspx - 我已经让它工作了。但我非常肯定,特别是在集成管道模式下,我应该能够说如果URL有" myproxy.ashx /"在它的某个地方,然后调用我的处理程序模块......有人能指出我正确的方向......

1 个答案:

答案 0 :(得分:0)

我想我想出了这个: 在web.config的system.webServer节点中添加了以下内容:

 <handlers>   <add name="ProxyAll" preCondition="integratedMode" verb="GET,POST" path="myproxy.ashx*" type="MyNameSpace.MyProxy"/> </handlers>

myproxy.ashx之后的*将匹配所有URL,即使最后还有静态文件名。