我有一个MVC5应用程序,其中在集成应用程序池中的IIS中运行了url http://site1.com 。我在 http://site2.com/dir/service.svc 上运行了另一项服务。
我正在尝试为 http://site1.com/dir/service.svc 创建重写规则,以转到 http://site2.com/dir/service.svc 。
我一直收到 404 NOT FOUND 回复。但我已经确认我可以通过网络浏览器浏览该服务。
在IIS中,我使用ARR(应用程序请求路由)插件在应用程序和服务器级别创建重写规则。
以下是applicationHosts.config(服务器级别)和web.config(应用程序级别)的重写规则示例:
<rule name="rewrtite test 2" patternSyntax="ExactMatch">
<match url="http://site1.com/dir/service.svc" />
<action type="Rewrite" url="http://site2.com/dir/service.svc" />
</rule>
在我的MVC应用程序中,我尝试将以下内容添加到 RouteConfig.cs 中:
routes.IgnoreRoute("dir/{*pathInfo}");
我也尝试过:
routes.IgnoreRoute("dir/service.svc");
我读到问题可能是因为 ExtensionlessUrlHandler 所以我尝试将其删除:
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
</handlers>
一些细节:
我尝试使用以下设置打开 FailedRequestLogging :
但是我没有在%SystemDrive%\ inetpub \ logs \ FailedReqLogFiles 中获取任何日志文件。
感谢。