URL 重写未按预期工作 - 隐藏 svc 扩展

URL Rewrite Doesn't Work as Expected - Hide svc extension

我是 URL 重写的新手。

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

我在该服务上有一个名为 "Test" 的方法,我在存在 svc 扩展的情况下成功调用了该方法。

我做了什么:

  1. 在网络配置中创建了一个规则:

  1. 检查了重写功能下 IIS 中显示的规则。

  1. 通过单击 "test pattern" 按钮并输入 URL 详细信息,验证了它是否如我所料:

  1. 是否重置了 IIS(多次)。

  2. 尝试此操作时收到 404 URL:

http://localhost/WcfTestApp/Service1/Test

其他内容:

我也启用了"Failed Request Tracing Rules"但是我没有看到文件夹中创建的日志。

知道为什么它没有像我预期的那样工作吗?

在此先感谢您的帮助。

我如何解决它:

  1. 我修复了未显示的失败请求跟踪日志文件,原来你需要在 IIS 设置中配置跟踪应该发生的状态代码,因为它不够智能 select全部默认。

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

最后,这就是我使用的。

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