Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF托管在Windows服务中+;网页?_.net_Wcf_Iis - Fatal编程技术网

.net WCF托管在Windows服务中+;网页?

.net WCF托管在Windows服务中+;网页?,.net,wcf,iis,.net,Wcf,Iis,我不确定我是否要问一个棘手的问题,但事情是这样的。我在Windows服务中托管了一个WCF服务,新的需求出现了:负载平衡所需的keepalive网页。是否可以从我的Windows服务托管此页面 我需要在IIS中托管WCF服务吗?我宁愿不这样做 谢谢。尝试创建服务契约以处理使用basicHttpBinding公开的负载平衡器的请求您的windows服务可能通过basicHttpBinding或wsHttpBinding公开HTTP端点。IIS不是必需的。通过IIS托管HTTP端点有一些好处,比如基

我不确定我是否要问一个棘手的问题,但事情是这样的。我在Windows服务中托管了一个WCF服务,新的需求出现了:负载平衡所需的keepalive网页。是否可以从我的Windows服务托管此页面

我需要在IIS中托管WCF服务吗?我宁愿不这样做


谢谢。

尝试创建服务契约以处理使用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)。