Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加路由以消除REST服务中的.SVC是';行不通_C#_.net_Wcf_Rest - Fatal编程技术网

C# 添加路由以消除REST服务中的.SVC是';行不通

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”文件的

我正在构建一个虚拟的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文件中的错误,项目将不会生成

它表示在应用程序启动功能中添加以下内容:

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”的问题列表时,这个问题看起来仍然没有答案。