C# 对于返回值的方法,我应该使用wsHttpBinding还是wsDualHttpBinding?

C# 对于返回值的方法,我应该使用wsHttpBinding还是wsDualHttpBinding?,c#,.net,wcf,wcf-binding,C#,.net,Wcf,Wcf Binding,我正试图用WCF编写一个主机/客户机风格的系统,目前我想使用wsHttpBinding,但当我越过这一行时,我正在阅读其他内容(isOneWay bool): 'HTTP不能用于回调,因此不能通过BasicHttpBinding或WSHttpBinding使用回调' 我的大多数方法都会返回值,例如,客户机将调用一个方法,该方法将根据调用的方法从服务器发回特定数据。如下所示,在以下位置有一条返回线: public string SayHello(string name) { Console

我正试图用WCF编写一个主机/客户机风格的系统,目前我想使用wsHttpBinding,但当我越过这一行时,我正在阅读其他内容(isOneWay bool):

'HTTP不能用于回调,因此不能通过BasicHttpBinding或WSHttpBinding使用回调'

我的大多数方法都会返回值,例如,客户机将调用一个方法,该方法将根据调用的方法从服务器发回特定数据。如下所示,在以下位置有一条返回线:

public string SayHello(string name)
{
    Console.WriteLine(">>> SayHello has been called");
    return string.Format("Hello, {0}!", name);
}

返回行是否会使其成为回调,因此我必须使用不同的绑定?或者,只有当客户端向服务器发送“消息”,而服务器向服务器发送“消息”时,才进行回调?在我的代码中,它只是调用返回数据的方法,这样就不会被归类为回调,我可以继续使用wsHttpBinding吗?谢谢

您肯定不需要
wsDualHttpBinding
来返回值
BasicHttpBinding
或者更好的
WSHttpBinding
是您所需要的


wsDualHttpBinding
用于从服务器实际调用客户端(回调)。它在网络世界中没有得到广泛应用,因为它有局限性,还有更好的选项,如WebSockets和SignalR

啊,谢谢你,这就解决了问题。因此,它基本上就像一个提示,告诉主机将数据发送到客户端?
wsDualHttpBinding
?这更像是一种回复信息的方式。它不必就在客户端调用服务器之后。例如,您可以使用它来发送通知或类似的内容。不,wsHttpBinding就像一个提示,告诉方法将数据发送到客户端,这样它就不会是回调。哦。。差不多吧。客户端发送一条http消息并获取包含结果的响应。但这一切都是为你而抽象的。您只需在客户机上调用该方法,然后“神奇地”从该方法中获得一个结果。