数据层有一个方法,根据企业名称查找企业信息
WCF服务调用这个方法返回结果给客户端。
客户端输入企业名称进行查找。
问题:
客户端如果输入企业名称为英文时,可以顺利返回结果;如果输入中文,则WCF报错,错误原因为:
发送到 net.tcp://192.168.1.111:8888/ManageServices/EnterpriseService 的请求操作在配置的超时(00:01:00)内未收到回复。分配给该操作的时间可能是更长超时的一部分。这可能由于服务仍在处理操作或服务无法发送回复消息。请考虑增加操作超时(将通道/代理转换为 IContextChannel 并设置 OperationTimeout 属性)并确保服务能够连接到客户端。
通过断点调试发现数据层已经将数据返回到WCF服务层,问题就在WCF服务中。不知道各位有没有类似的问题,还行指教一下
可能在服务端没能执行正确的操作
你先检查一下是不是网络的原因,如果不是,你再看看逻辑上是不是处理太慢了。优化一下算法。
英文查询正常,中文查询不正常,应该不是逻辑上的问题。单步debug一下吧
可能是序列化问题。可以看看有没有抛出异常等等问题。
在客户端应用程序中配置回调服务实现:[CallbackBehavior(UseSynchronizationContext = false)]
例子:
[CallbackBehavior(UseSynchronizationContext = false)]
public class callbackHandler : IService1Callback
{
#region IService1Callback 成员
public void Equals(double n)
{
Console.WriteLine("偶的回调值是:{0}", n);
}
public void Equaltioan(string result)
{
Console.WriteLine("偶的回调值是:{0}", result);
}
#endregion
}