2013-11-22 37 views
0

我有一个第三方Javascript软件包,它跳过一些环节将客户端连接到后端服务器以进行聊天会话。通过目录特定的Web.Config提供URL重写

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="ReverseProxyInboundRule1" stopProcessing="true"> 
       <match url="(.*)" /> 
       <action type="Rewrite" url="http://myServer:1234/{R:1}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

我想成为了这个:它通过在包含一个web.config与URL重写规则,看起来像这样在Web服务器上的目录指向计算出后端服务器的地址Javascript通过MVC.Net应用程序来处理一些需要发生的用户设置,以便我可以传递一些自定义参数。问题是,当JS尝试用重写规则请求包含web.config的子目录时,MVC(可以理解)步入并尝试将该请求与控制器/操作组合相匹配。

可能刚刚创建适当命名的动作控制器对此网址作出反应,但我不认为作为文字文本是要解决我的问题,供应了web.config's内容。我的理解是IIS会在请求该目录时读取目录中的任何web.configs,并将配置中找到的任何规则应用于请求。

我应该怎么去告诉MVC让这个请求消失,所以IIS可以按预期做它的事情?我甚至做出了正确的假设,还是我完全脱离基地?

举例来说,所讨论目录的URL类似于http://somesite.com/Server1/,在文件系统中,Server1文件夹将存在于仅包含上面详述的web.config的站点根目录中。

回答

0

当设置你的路由,添加:

routes.IgnoreRoute("Server1/{*.pathInfo}"); 
+0

我有它在我的头上,即使我设法得到它的路由到相应的目录,MVC会一直仍然拒绝允许IIS处理web.config。回想起来,这没有任何意义。感谢您的快速,简洁的回复。这正如预期的那样工作。 – TLE

+0

欢迎您:) – marteljn