0

我有一个充当“代理”的模块。它需要解决我遇到的一些跨域脚本问题。所以服务器将获取外部内容并将其返回给客户端,并且客户端保持在同一个域中。

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

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

我收到一个 HTTP 错误 404 File Not Found for url myproxy.ashx/site1/getsomestuff.aspx

但是,如果我修改上面的 URL,那么在 URL 的末尾没有像这样的点文件名:

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

myproxy.ashx 的处理程序被调用。如果我在生成要实际查询的 URL 时放入一些杂乱代码以将 getsomestuff_aspx 更改为 getsomestuff.aspx - 我已经让它工作了。但我很确定,尤其是在集成管道模式下,我应该能够在某处说如果 URL 在其中某处有“myproxy.ashx/”,然后调用我的处理程序模块......有人能指点我吗?方向...

4

1 回答 1

0

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

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

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

于 2014-07-02T22:28:24.967 回答