我正在尝试为Java Socket服务器构建一个WCF客户端,该服务器讨论自定义XML消息。我用MessageEncoder和netTCP传输创建了自己的自定义绑定。
现在我所看到的是 在第一次调用服务器时,服务器接受连接。但是,服务器然后等待特定的XML数据包。这是内置于客户端的方法接口中。 WCF不发送XML数据包。 稍后WCF报告超时异常,并且通道出现故障。
WCF netTCP传输是否仅适用于WCF TCP服务器?
代码:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IUserManager", SessionMode=System.ServiceModel.SessionMode.Required)]
public interface IUserManager
{
[System.ServiceModel.OperationContract]
bool SendMessage(string strMessage);
[System.ServiceModel.OperationContract(IsInitiating = true, IsOneWay=true)]
void SendMessageOneWay(string strMessage);
}
我创建了一个SendMessageOneWay来启动Socket连接。这不起作用。因为我需要重用套接字,所以我设置了Session.Required。
请帮忙
答案 0 :(得分:1)
WCF netTCP传输使用基于TCP的自定义协议;它是不是通用的原始TCP套接字适配器。
听起来您需要创建自己的自定义传输渠道。我刚刚在编写WCF频道时创建了一个list of resources(可能有点过时,但它对于入门仍然有用)
答案 1 :(得分:1)
是wcf使用不可互操作的.net成帧协议。 http://blogs.msdn.com/b/drnick/archive/2009/01/19/message-framing-part-1.aspx