Asp.net url路由陷阱asmx web服务调用

时间:2011-10-05 12:37:04

标签: asp.net routing asmx

我有一个Asp.Net 4.0 Web窗体项目,它使用url路由为用户友好的URL,即隐藏明文网址后面的aspx页面。

在这个项目中,我们有一个asmx Web服务,它在页面上提供一些jQuery控件。到目前为止,在开发机器和内部测试站点上,一切都运行良好,但现在当我们在生产站点上安装项目时,asmx调用被路由代码所困。

我们有一个捕获最后添加的所有路径,显示未找到的页面。

当我在服务器上打开Web服务(http://localhost/service.asmx?op = MyWebMethod)时,输入一些值并单击Invoke I get the Not found页面。 Invoke打开的url是http://localhost/service.asmx/MyWebMethod所以它非常合乎逻辑(service.asmx看起来像一个目录)但我不明白它如何在同一个项目的所有其他安装上工作。

生产服务器是Windows 2008 Server R2 Standard,项目是Asp.net 4.0,我没有为asmx文件注册任何StopRoutingHandler。

内部测试站点和生产站点之间的web.config文件是相同的,而且我知道还没有触及machine.config -files。

1 个答案:

答案 0 :(得分:3)

routes.Add(new Route("{resource}.asmx/{*pathInfo}", new StopRoutingHandler()));