.net WCF托管在Windows服务中+;网页?
我不确定我是否要问一个棘手的问题,但事情是这样的。我在Windows服务中托管了一个WCF服务,新的需求出现了:负载平衡所需的keepalive网页。是否可以从我的Windows服务托管此页面 我需要在IIS中托管WCF服务吗?我宁愿不这样做.net WCF托管在Windows服务中+;网页?,.net,wcf,iis,.net,Wcf,Iis,我不确定我是否要问一个棘手的问题,但事情是这样的。我在Windows服务中托管了一个WCF服务,新的需求出现了:负载平衡所需的keepalive网页。是否可以从我的Windows服务托管此页面 我需要在IIS中托管WCF服务吗?我宁愿不这样做 谢谢。尝试创建服务契约以处理使用basicHttpBinding公开的负载平衡器的请求您的windows服务可能通过basicHttpBinding或wsHttpBinding公开HTTP端点。IIS不是必需的。通过IIS托管HTTP端点有一些好处,比如基
谢谢。尝试创建服务契约以处理使用basicHttpBinding公开的负载平衡器的请求您的windows服务可能通过basicHttpBinding或wsHttpBinding公开HTTP端点。IIS不是必需的。通过IIS托管HTTP端点有一些好处,比如基于消息的激活
如果IIS已经在同一台计算机上运行,请确保为windows service HTTP端点选择一个不同于80的端口,因为IIS将侦听端口80上的请求,然后这些请求将不会到达您的服务。一年多之后,我希望这能有所帮助 如何:创建基本的WCF Web HTTP服务 看看合同:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebGet]
string EchoWithGet(string s);
[OperationContract]
[WebInvoke]
string EchoWithPost(string s);
}
在's'参数中有请求(或post请求),必须在返回中写入输出html。就这些嗨,网页需要在web服务器上运行,您可以使用IIS或IIS Express,也可以开发自己的网页,或者使用第三方网页。好的,那么我唯一的选择就是在IIS中托管WCF服务?为什么它必须是网站?一个人必须能够访问它?负载平衡器要求将服务器保留在群集中。@David Piras:在“纯”WCF服务中托管一个“网页”是绝对可能的,尽管在架构上可能不可取。将“webHttpBinding”用于端点,使用返回“System.IO.Stream”的方法/操作契约,并用“[WebGet]”或“[WebInvoke]”对其进行注释,将“WebOperationContext.Current.OutgoingResponse.ContentType”设置为“text/html”,并将网页呈现/写入返回的流中-如您所愿。您甚至可以将链接添加回自己的服务(使用WebGet/WebInvoke引用(其他)操作契约的URL)。