我有一台计算机充当WCF服务主机。客户端计算机将运行多个客户端进程,每个客户端进程还在不同的端口(5601,5602等)上托管WCF服务。客户端进程将握手主机。收到握手后,主机将发回一些数据。客户端进程一个接一个地生成,由主机上的单独方法指示。但是,在启动多个实例后,我不断收到以下异常:
由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为)以将异常信息发送回客户端,或者根据Microsoft .NET Framework 3.0 SDK文档启用跟踪并检查服务器跟踪日志。
然而,当我在产生之间增加延迟时,似乎没有问题。会导致这种情况的原因,我该如何解决?
在远程系统上产生进程,该进程立即尝试与主系统上的控制器服务握手。
target.InitiateTestProcess(a);
//System.Threading.Thread.Sleep(1000);
target.InitiateTestProcess(b);
握手
public void Handshake(Uri connectBack)
{
IWorkerContract client = ChannelFactory<IWorkerContract>.CreateChannel(
new BasicHttpBinding(),
new EndpointAddress(new Uri(connectBack, "Worker")));
client.PassUUT(clients[connectBack]);
}
请评论是否需要其他信息,我会尽力解决您的问题。
答案 0 :(得分:0)
我解决了这个问题,我启用了IncludeExceptionDetailInFaults消费者,因此他们会报告异常详细信息。工作人员正在创建和读取文件,通常是相同的文件(通过测试,它始终是相同的文件),并且当两个+进程尝试读取同一文件时偶尔会发生冲突。