首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Routes消除WCF 4服务的URL中的.svc?

WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的微软技术。在WCF 4中,可以使用Routes来消除服务URL中的.svc后缀。

Routes是一种用于定义URL路由规则的机制,它允许将请求映射到特定的服务端点。通过使用Routes,可以在WCF服务中隐藏.svc文件扩展名,使URL更加友好和简洁。

要使用Routes消除WCF 4服务的URL中的.svc,可以按照以下步骤进行操作:

  1. 在服务的配置文件(通常是Web.config或App.config)中,添加以下配置节:
代码语言:xml
复制
<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  <standardEndpoints>
    <webHttpEndpoint>
      <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
    </webHttpEndpoint>
  </standardEndpoints>
  <serviceActivations>
    <add relativeAddress="Service.svc" service="Namespace.YourServiceClass" factory="System.ServiceModel.Activation.WebServiceHostFactory" />
  </serviceActivations>
  <domainServices>
    <endpoints>
      <add name="YourServiceName" endpoint="Namespace.YourServiceClass" />
    </endpoints>
  </domainServices>
  <routing>
    <filters>
      <filter name="YourFilterName" filterType="Namespace.YourFilterClass, YourAssembly" />
    </filters>
    <routeTable>
      <add name="YourRouteName" filterName="YourFilterName" endpointName="YourServiceName" />
    </routeTable>
  </routing>
</system.serviceModel>
  1. 在服务的代码文件中,创建一个实现了System.ServiceModel.Dispatcher.MessageFilter接口的自定义过滤器类(YourFilterClass)。该过滤器类用于根据URL路由规则选择适当的服务端点。
  2. 在服务的代码文件中,创建一个自定义服务类(YourServiceClass),该类实现了要提供的服务契约。
  3. 在服务的代码文件中,创建一个自定义服务工厂类(YourServiceFactory),该类继承自System.ServiceModel.Activation.ServiceHostFactoryBase,用于创建自定义服务类的实例。
  4. 在服务的代码文件中,创建一个自定义服务激活类(YourServiceActivation),该类继承自System.ServiceModel.Activation.ServiceRouteHandler,用于处理服务的激活请求。
  5. 在服务的代码文件中,创建一个自定义路由表类(YourRouteTable),该类继承自System.ServiceModel.Routing.RouteTable,用于定义URL路由规则。
  6. 在服务的代码文件中,创建一个自定义路由规则类(YourRoute),该类继承自System.ServiceModel.Routing.Route,用于定义URL路由规则的详细信息。

完成以上步骤后,就可以使用Routes消除WCF 4服务的URL中的.svc。通过配置和自定义类的组合,可以根据具体需求定义URL路由规则,实现更加灵活和友好的服务URL。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议在腾讯云官方网站上查找相关产品和文档,以获取最新和详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF之旅(4):WCF序列化

SOA 和Message Windows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation Architecture——SOA...在WCF,我们把Service调用相关提取出来即为我们经常说Contract,Service提供者和Client之间共享是Service Contract——而不传统OO概念下Type。...理解了SO基本原理,我们来看看WCF,从WCF全称来分析——Windows Communication Foundation,顾名思义,他就是解决分布式互联系统各相互独立子系统如何交互问题,换句话说...所以 在WCFSerialization可以看成是Serializer通过反射机制分析对象所对应Type原数据,从而提供一种算法实现Managed TypeXSD转化。...在WCF,有3不同方式可供选择:Binary;Text和MTOM(Message Transmit Optimized Mechanism)。

751110

WCF之旅(4):WCF序列化

不会再Root Element添加相应Namaspace。 对象成员以XML Element形式输出。 对象成员出现顺利和在Type定义顺序一致。...只有Public Field和可读可写得Proppery才会被序列化到XML——比如定义在XMLProductinternal string ProducingArea没有出现在XML。...以上这些都是默认Mapping关系,同DataContractSerializer一样,我们可以通过在Type以及它成员运用一些Attribute来改这种默认Mapping。...> <XMLOrder id="9a0bbda<em>4</em>-1743-4398-bc<em>4</em>f-ee216e02695b" xmlns="http://artech.wcfSerialization/Samples/Order...Type<em>中</em>定义<em>的</em>顺序 字母排序 兼容性 .asmx Remoting Deserialzation 调用默认构造函数 不会调用

636110
  • 使用WCF进行跨平台开发之二(IIS托管WCF服务使用php平台调用)1.系统必备2.在IIS托管WCF服务3.使用PHP调用托管在IISWCF服务

    上一篇使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS(并不是必须,还是有其他方式 比如windows azure) 1.系统必备      首先,必须打开...2.在IIS托管WCF服务      在IIS默认网站添加应用程序emp,并在高级设置,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型编辑IP地址和主机名...在新建虚拟目录对应实际目录,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用svc文件托管服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管在IISWCF服务 在PHP服务打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...出现以上页面,证明在IIS托管正常,现在,可以使用php开发程序调用此服务啦。

    2.1K70

    WCFRESTFul服务搭建及实现增删改查

    RESTful Wcf是一种基于Http协议服务架构风格,  RESTful 服务通常是架构层面上考虑。...因为它天生就具有很好跨平台跨语言集成能力,几乎所有的语言和网络平台都支持 HTTP 请求,无需去实现复杂客户端代理,无需使用复杂数据通讯方式既可以将我们服务暴露给任何需要的人,无论他使用 VB...(3)     People.cs 数据契约,定义实体对象 (4)     Global.asax 全局资源文件定义注册路由 (5)     Web.config 配置WCF服务。...接口中[ServiceContract(Name="user")]定义,我们URL路径中将会用到user 4、  Service1.svc实现契约 using System; using System.Collections.Generic...VS自带IIS调试,WCF RESTFul生成URL与调用WCF服务URL端口号要保持一致,要不然用ajax调用浏览器会认为跨域。

    61430

    WCF技术剖析之二十: 服务WCF体系是如何被描述?

    任何一个程序都需要运行于一个确定进程,进程是一个容器,其中包含程序实例运行所需资源。同理,一个WCF服务监听与执行同样需要通过一个进程来承载。...服务寄宿方式大体分两种:一种是为一组WCF服务创建一个托管应用程序,通过手工启动程序方式对服务进行寄宿,所有的托管应用程序均可作为WCF服务宿主,比如Console应用、Windows Forms...无论采用哪种寄宿方式,在为某个服务创建ServiceHost过程WCF框架内部会执行一系列操作,其中最重要步骤就是为服务创建服务描述(Service Description)。...客户端行为体现WCF如何进行服务调用方式,而服务端行为则体现了WCF请求分发方式。...IContractBehavior具有与IEndpointBehavior一样方法成员,但是契约行为作用于实现了该服务契约所有服务服务端行为),基于使用服务契约进行服务调用服务代理(客户端行为

    99560

    使用 YOURLS 创建自己 URL 缩短服务

    YOURLS 是 Your Own URL Shortener 简写,YOURLS 是一个开源 PHP 程序,让你可以运行自己 URL 缩短服务,我现在使用 http://wpjam.com/...go/xxx 形式跳转链接就是通过 YOURLS 实现。...YOURLS 功能非常强大,你可以和我一样,自己用来做跳转链接管理和统计,也可以开放出来给大家使用,并且它还有自己 API,将它集成到其他服务当中去。...YOURLS 主要功能 可以公开(任何人都可以用它创建短连接)或者私有(只能你自己使用) 可以随机,顺序或者自定义 URL 关键字 详细点击统计报表:历史点击,来源,地理位置 整洁 AJAX 化界面.../config.php 文件 修改 includes/config.php,输入数据库信息和站点设置,详细可以参考 YOURLS 配置 上传源代码到服务器 在浏览器输入 http://yoursite.com

    69220

    WCF 4.0动态发现服务WS-Discovery

    WCF 3/3.5 ,当我们要调用一个服务时,必须事先知道该服务地址,然后通过服务代理用双方约定好契约与远程服务进行交互。...现在,WCF 4.0提供了发现服务支持,当我们再想调用一个服务时,没必要去知道该服务具体地址,WCF 4.0实现了OASISWS-Discovery标准,相关类定义在System.ServiceModel.Discovery...只需要利用 System.ServiceModel.Discovery 命名空间下相关类就可以实现两种方式动态发现服务: Ad hoc Mode:简单理解,就是服务启动时就向网络广播Hello消息,...Managed Mode:简单理解,就是所有服务事先在一个叫 Discovery Proxy 地方登记,然后所有调用方发送查找请求给 Discovery Proxy 来查找并调用相关服务模式。...WCF 4.0要动态发现服务,用 Ad hoc Mode 实现起来还是比较简单

    95950

    WCF Web API 说再见,继承者ASP.NET Web API

    从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架 RESTful Web 服务还是建立在 WCF Message 栈上...,非常期待正式发布ASP.NET  Web API,更期望ASP.NET MVC 4会和ASP.NET MVC 3一样可以很好运行在Mono上,这样Mono平台就完美了,可以完全支持RESTful...ASP.NET Web API还有一个特性就是可以类似于WCF自宿主方式部署,当然也可以在IIS上运行。 下面来看看如何使用 ASP.NET Web Api (使用是 VS2010版) ?...注册了 Api Url Map: api/{controller}/{id} 每个"Action"是通过 Http谓词(GET/POST/PUT/DELETE)映射。        ...and-WebAP http://www.davidhayden.me/blog/asp.net-mvc-4-web-api-routes-and-apicontroller

    1.3K90

    WCF技术剖析之四:基于IISWCF服务寄宿(Hosting)实现揭秘

    我们可以通过一种简单方式来证明这一点。 假设我们有一个WCF服务需要通过IIS进行寄宿,并把WCF服务相应.svc文件定义在一个对应于某个IIS虚拟目录ASP.NET Website。...二、ASP.NET并行(Side by Side)模式 对于基于IIS服务寄宿,System.ServiceModel.Activation.HttpModule将基于.svc请求劫持并分发给WCF服务模型...但是很多ASP.NET特性将不能被WCF Service使用,比如: HttpContext:对于WCF Service来说,HttpContext.Current永远为null; 基于文件或者Url...授权:基于.svc文件ACL(Access Control List)授权和ASP.NET通过定义基于URL授权都将失去效力。...比如,在WCF Service操作,需要获取ASP.NET应用SessionState,或者是需要通过基于.svc文件ACL对WCF Service进行授权等。

    1.3K100

    使用 Java8 Optional 类来消除代码 null 检查

    —— 每个 Java 程序员都非常了解异常。 本篇文章将详细介绍 Optional 类,以及如何用它消除代码 null 检查。...基于上面的原因,Java8 引入了一个新类 Optional,用以避免使用 null 值引发种种问题。...提取Optional对象值 如果我们要获取 User 对象 roleId 属性值,常见方式是直接获取: String roleId = null; if (user !...更多关于函数式编程请移步至 #公众号:一个正经程序员 文章:一篇文章教会你使用 Java8 Lambda 表达式 这里有几条关于 Optional 使用建议: 尽量避免在程序中直接调用 Optional...一个正经程序员"); Optional userOpt = Optional.of(new User()); // 方法参数role值不确定是否为null,使用ofNullable

    38930

    WCF入门级使用教程(转载请注明出处)

    ,然后在BLL项目的References上右击-->add References-->Projects-->选择01_WCF项目,完成对项目WCF引用 4.把BLL默认Class1.cs删除,新建一个...://localhost:90/WCF/CalculateService.svc时,会发现页面上有一个提示: 若要测试此服务,需要创建一个客户端,并将其用于调用该服务。...可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作: svcutil.exe http://jimmycntvs:90/WCF/CalculateService.svc?...先编写了一个简单WCF服务,然后把它宿主在IIS运行,然后用控制台程序来调用这个WCF....当然WCF深入研究下去,远比这个复杂,这篇文章主要是为了消除大家对新技术恐惧,快速上手WCF使用,其实MS每次推出新技术,听上去蛮吓人,用起来都很简单.

    94570

    WinForm企业应用框架设计【一】界限划分与动态创建WCF服务(no svc!no serviceActivations!)

    WinForm企业应用框架设计【一】界限划分与动态创建WCF服务(no svc!no serviceActivations!)...我还等着看呢~ 好了言归正传 我承诺这个系列将包含以下这些内容 1.一个简单面向服务编程框架搭建 2.动态创建WCF(no svc!no serviceActivations!)...3.客户端根据约定自动识别WCF服务 4.客户端框架窗体(如上图所示) 5.动态菜单与动态业务窗体 如果反响不错~我将加入如下内容 6.组织架构和人事管理 7.角色权限控制 8.自定义打包工具 好吧~真正言归正传...【上句话在2011-12-2修改】 XL.Service针对每个业务都将有一个WCF服务与之对应, 每个服务类型都实现了XL.ServiceAPI一个接口 XL.Client通过XL.ServiceAPI...这些接口调用服务 XL.DataAccess 负责持久化数据和从数据库取数 二:动态创建WCF服务  在Application_Start中加入如下代码 protected void

    58040

    入门:构建简单Web API

    这个入门文章主要演示在ASP.NET MVC3网站宿主: 如何使用NuGet向项目中添加Web Api引用 如何创建一个通过HTTP GET访问Web Api 如何通过asp.net routes...4、通过asp.net routing注册ContractsApi Api需要通过asp.net mvc宿主,使用ASP.net RouteMapServiceRoute扩展方法把它注册进去。...} // Parameter defaults ); } MapServiceRoute需要一个泛型参数指定服务(API),以及一个将被追加到IIS base url路径。...查询使用IQueryable 接口,服务端并没有去查询所有的数据,发送过滤和排序到服务端。...总结 通过这个Quick start,我们学习到了以下内容 如何使用NuGet向项目中添加Web Api引用 如何创建一个通过HTTP GET访问Web Api 如何通过asp.net routes

    3.1K90

    WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)WCF服务

    在《基于IISWCF服务寄宿(Hosting)实现揭秘》,我们谈到在采用基于IIS(或者说基于ASP.NET)WCF服务寄宿,具有两种截然不同运行模式:ASP.NET并行(Side by Side...对于前者,WCF通过HttpModule实现了服务寄宿,而对于后者,WCF服务寄宿通过一个HttpHandler实现。...只有在ASP.NET兼容模式下,我们熟悉一些ASP.NET机制才能被我们使用,比如通过HttpContext请求下下文;基于文件或者Url授权;HttpModule扩展;身份模拟(Impersonation...WCF服务定义成“累积计算服务”:保留上一次运算结果,并将其作为后续运算操作数。...关于Session识别信息保存,ASP.NET有两种方式:Cookie和URL,前者将其放到Cookie,每次HTTP请求将会携带该Cookie值,后者则将其作为请求URL一部分。

    817100
    领券