C# 添加路由以消除REST服务中的.SVC是';行不通
我正在构建一个虚拟的WCF REST服务,只是为了学习它是如何工作的(为真正的服务构建做准备)。我让REST服务使用JSON和POX格式工作和响应。但是,为了消除“.svc”文件,我无法使路由解决方案工作。我正在WinServer2008R2上使用VS2010、WCF4.0和IIS7.5 现在URL的工作方式是:“/api/rest/rest.svc/json/myMethod”,但我只想要“/api/rest/json/myMethod”。我在这里和其他地方找到了许多声称删除“.svc”文件的文章。我相信我已经按照指示进行了设置,但是由于Global.asax文件中的错误,项目将不会生成 它表示在应用程序启动功能中添加以下内容:C# 添加路由以消除REST服务中的.SVC是';行不通,c#,.net,wcf,rest,C#,.net,Wcf,Rest,我正在构建一个虚拟的WCF REST服务,只是为了学习它是如何工作的(为真正的服务构建做准备)。我让REST服务使用JSON和POX格式工作和响应。但是,为了消除“.svc”文件,我无法使路由解决方案工作。我正在WinServer2008R2上使用VS2010、WCF4.0和IIS7.5 现在URL的工作方式是:“/api/rest/rest.svc/json/myMethod”,但我只想要“/api/rest/json/myMethod”。我在这里和其他地方找到了许多声称删除“.svc”文件的
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(),
typeof(RestService)));
我还在web.config中添加了以下内容:
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule"
type="System.Web.Routing.UrlRoutingModule,
System.Web.Routing, Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<add name="UrlRoutingHandler"
preCondition="integratedMode"
verb="*" path="UrlRouting.axd"
type="System.Web.HttpForbiddenHandler,
System.Web, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
我还将aspNetCompatibility行添加到web.config以及svc.cs文件中类的上方
第四个问题是我甚至无法让项目进行构建。将RouteTable.Routes.add行添加到global.asax并构建它时,会出现以下错误:
类型
'System.ServiceModel.Activation.ServiceHostFactory'
在未定义的程序集中定义
参考。您必须添加一个引用
装配
'System.ServiceModel.Activation,
版本=4.0.0.0,区域性=中性,
PublicKeyToken=31bf3856ad364e35'
类型或命名空间名称
找不到“ServiceRoute”(是
您缺少using指令或
装配参考?)
知道这失败的原因吗?确保项目中引用了“System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”,如果确保也将其添加到web.config文件中Joakim 3月25日19:03确保“System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”在项目中被引用,如果确保也将其添加到web.config文件中。嘿,如果第一条评论是真正的答案,你能将其发布并接受为答案吗?当查看标记为“WCF”的问题列表时,这个问题看起来仍然没有答案。