我想通过避免使用 .svc 来使用我的 WCF 服务端点创建 REST 友好的 URL。我知道我可以通过使用 IIS 重写模块来附加 .svc 来完成此操作。
还有其他人知道更好的方法吗?
请注意,我仅限于 .NET 3.5 并且不能使用 .NET 4.0(因此不能在 .NET 4.0 中使用 System.Web.Routing)
不再支持 WCF REST Starter Kit,建议的升级路径使用 ASP.Net Web API,它是 ASP.Net MVC 4.0 的一部分,可在此处找到
不幸的是,如果不使用 Rewrite 模块,目前还没有办法做到这一点。MS 有一个团队正在研究 WCF REST Starter Kit,可在此处查看如何实现此功能。
在我今年早些时候就该主题所做的 Microsoft DevDays 演示中,Ron Jacobs 确认只有在 Framework 4.0 及更高版本中才能执行此操作,并且对于重写模块以下的任何内容都是唯一的方法。
您可以将 ISAPI 重写模块“插入”到 IIS 中,为您执行此操作,例如 Ionic:
您也可以早在 .NET 1.1 中编写自己的 HTTP 重写引擎——尽管这需要有一个可以映射到使用 ASP.NET 引擎的文件扩展名,因为它仅在 IIS 将请求传递给 .NET 后才会重写——但是它可以是您选择的任何扩展名。
对于您的问题,ISAPI 重写模块是最好的解决方案。
WCF Contrib 库(我还没有使用过)声称有能力做到这一点。