如何生成.svc文件
本文关键字:文件 svc 何生成 | 更新日期: 2023-09-27 18:29:19
我创建了我的第一个WCF服务,并在我的计算机上进行了测试,它可以工作。
存在的文件是一个接口、该接口的实现和app.config文件。
现在是时候在带有IIS的真实服务器上托管它了,我被告知IIS在接收传入呼叫时会查找.svc文件。
以下是我的发现:
IIS中托管的WCF服务表示为IIS应用程序中的特殊内容文件(.svc文件)。此模型类似于在IIS应用程序内部将ASMX页面表示为.ASMX文件的方式。.svc文件包含WCF特定的处理指令(@ServiceHost),该指令允许WCF托管基础结构激活托管服务以响应传入消息。
有人能指导我如何创建这个文件,以便我可以托管它吗?
谢谢!
需要记住的是,IIS首先是web服务器,WCF主机其次。
Web服务器的工作是根据传入的请求呈现数据。这些数据大多是内容(请求路径与服务器上的文件直接相关),但在WCF服务的情况下,IIS需要知道从这里转到哪里(因此SVC文件和IIS的"指令"会启动您的服务)。
SVC文件所做的一切都是说,在/x/y/z.svc
上,我有一个WCF服务,它不仅能够处理服务器端页面和内容文件,还能够处理批量。因此,请将其旋转,使其可用,并允许处理我的传入连接。
如果这是一个WCF服务,托管在它自己的专用端口上,那就另当别论了,因为除了/MyService/GetSomeObject/
之外,它不再与/Styles/base.css
的其他请求竞争。
IIS托管的.svc
文件由@ServiceHost指令和属性Service组成。
<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %>
Service属性的值是服务实现的CLR类型名称。使用此指令基本上相当于在自托管控制台程序中使用以下代码创建服务主机。
new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName ));
如果您的自托管应用程序在app.config中使用WCF配置,如"endpoint"、"binding"等,您也可以将其放入web.config。IIS托管服务使用与IIS外部托管的WCF服务相同的配置元素和语法。(除非您无法控制IIS托管服务中的基/端点地址。)并将预编译的.dll文件放在IIS站点的应用程序''bin目录中。
IIS托管服务的地址将是.svc文件的地址(http://localhost/Application1/MyService.svc)。
请检查以下msdn-部署IIS托管WCF服务。
http://msdn.microsoft.com/en-us/library/aa751792.aspx