cap*_*gon 6 .net wcf visual-studio-2010
我可以通过以下帖子将ServiceRoute添加到我的WCF .net 4.0服务,扩展名为.svc:
但是,如何删除".svc"扩展名?
我的实际服务文件名为Catalog.svc
在关注这些帖子后,我可以使用csw.svc访问相同的服务
我的Global.asa.cs:
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
private void RegisterRoutes(RouteCollection routes)
{
routes.Add(new ServiceRoute("csw.svc", new WebServiceHostFactory(), typeof(CSW_ebRIM_WebService.Catalog)));
}
Run Code Online (Sandbox Code Playgroud)
我的Web.config:
...
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" >
<serviceActivations>
<add factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="~/csw.svc"
service="CSW_ebRIM_WebService.Catalog"/>
</serviceActivations>
</serviceHostingEnvironment>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd"/>
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
但是,如果我.svc
从全局和web.config
我得到的错误中删除扩展并且错误说:
配置文件中"system.serviceModel/serviceHostingEnvironment/serviceActivations"部分下的注册relativeAddress'〜/ csw'没有扩展名.
如果我把.svc
扩展名放回去web.config
并且只从全局删除它我得到:
值不能为空.参数名称:合同
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.ArgumentNullException:Value不能为null.参数名称:合同
是什么赋予了?如何删除.svc
扩展程序?
Ron Jacobs在这个主题上发表了一篇很棒的文章 - 你需要使用a ServiceRoute
来实现你想要的东西:
正如他在后续帖子WCF数据服务和ServiceRoute中所显示的那样,生成的服务文档确实也反映了更改并显示了没有.svc
扩展名的服务URL .
这个东西需要ASP.NET路由支持,它完全存在于.NET 4中(如果需要,可以在.NET 3.5 SP1中使用)
归档时间: |
|
查看次数: |
5380 次 |
最近记录: |