URL重写不能按预期工作 - 隐藏svc扩展名

时间:2015-02-08 09:08:49

标签: c# wcf rewrite isapi

我是URL Rewrite的新手。

我创建了一个WCF Rest服务,我正在尝试设置一个重写规则,允许在隐藏svc扩展名时调用服务。

我在该服务上有一个名为“Test”的方法,我使用svc扩展名成功调用。

我做了什么:

  1. 在网络配置中创建了一条规则:
  2. enter image description here

    1. 在重写功能下检查IIS中的规则显示。
    2. enter image description here

      1. 通过单击“测试模式”按钮并输入URL详细信息验证它是否正常工作:
      2. enter image description here

        1. IISReset(多次)。

        2. 我在尝试此网址时收到404:

        3. http://localhost/WcfTestApp/Service1/Test

          其他材料:

          我还启用了“失败的请求跟踪规则”但我看不到文件夹中创建的日志。

          任何想法为什么它没有像我期望的那样工作?

          提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我做了什么来解决它:

  1. 我修复了未出现的失败请求跟踪日志文件,结果你需要在IIS设置中配置应该进行跟踪的状态代码,因为它不够聪明,无法全部选择默认值。

  2. 然后通过跟踪文件(我在IE中打开),我注意到我的重写规则需要稍作修改,因为我能够看到我得到了什么URL,以及它被重写为什么(没有工作)。

  3. 最终,这就是我所使用的。

    <rule name="RemoveSvcExtension" stopProcessing="true">
      <match url="^(.*)Service1/(.*)$" />
      <action type="Rewrite" url="{R:1}Service1.svc/{R:2}" logRewrittenUrl="true" />
    </rule>