如何生成.svc文件?

The*_*per 22 c# wcf winforms

我创建了我的第一个WCF服务并在我的计算机上进行了测试,它可以工作.

存在的文件是接口,该接口的实现和app.config文件.

既然现在是时候在带有IIS的真实服务器上托管它了,我被告知IIS在接收来电时会查找.svc文件.

这是我发现的:

IIS中托管的WCF服务在IIS应用程序中表示为特殊内容文件(.svc文件).此模型类似于ASMX页面在IIS应用程序中表示为.asmx文件的方式..svc文件包含特定于WCF的处理指令(@ServiceHost),该指令允许WCF托管基础结构激活托管服务以响应传入消息.

有人可以指导我如何创建这个文件,以便我可以托管它?

谢谢!

Bra*_*tie 21

您需要记住的是,IIS首先是Web服务器,其次是WCF主机.

Web服务器的工作是根据传入的请求呈现数据.这些数据大部分都是内容(请求路径直接与服务器上的文件相关)但是在WCF服务的情况下,IIS需要知道从何处开始(因此SVC文件和"指令"到IIS进行旋转你的服务).

所有SVC文件正在做的是说,在/x/y/z.svc我有一个WCF服务,这是一个能的大量不仅仅是服务器端的页面和内容文件的更多.因此,请将其旋转,使其可用并允许处理我的传入连接.

如果这是托管它自己的专用端口上的WCF服务,这将是一个不同的故事,因为它不再与其他请求争/Styles/base.css除了/MyService/GetSomeObject/.


Min*_*Min 13

IIS托管.svc文件由@ServiceHost指令和属性Service组成.

<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %>
Run Code Online (Sandbox Code Playgroud)

Service属性的值是服务实现的CLR类型名称.使用此指令基本上相当于使用自托管控制台程序中的以下代码创建服务主机.

new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName ));
Run Code Online (Sandbox Code Playgroud)

如果您的自托管应用程序在app.config中使用WCF配置(如"端点","绑定"等),您也可以将其放在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