2015-02-08 88 views
0

我是新来的URL重写。URL重写不能按预期工作 - 隐藏svc扩展

我创建了一个WCF Rest服务,并且我试图设置一个重写规则,当svc扩展被隐藏时将允许调用服务。

我有一个名为“测试”的服务方法,我成功地调用了svc扩展。

我做了什么:

  1. 创建的web配置的规则:

enter image description here

  • 经过规则显示在IIS下重写特征。
  • enter image description here

  • 已验证它的工作原理如我期望通过点击 “测试模式” 按钮并输入URL细节:
  • enter image description here

    1. IISReset(多次)。

    2. 尝试此URL时,我得到一个404:

    http://localhost/WcfTestApp/Service1/Test

    其他的东西:

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

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

    在此先感谢您的帮助。

    回答

    0

    我做的事,以解决这个问题:

    1. 我固定的失败请求跟踪不出现日志文件,原来你需要在IIS配置设置应该发生的跟踪状态代码,如它缺乏足够的智能来默认选择全部。

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

    最终,这就是我所用的。

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