托管要由多个使用者使用的WCF服务,获取FaultException

时间:2009-07-21 19:53:28

标签: c# .net wcf

我有一台计算机充当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]);
    }

请评论是否需要其他信息,我会尽力解决您的问题。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,我启用了IncludeExceptionDetailInFaults消费者,因此他们会报告异常详细信息。工作人员正在创建和读取文件,通常是相同的文件(通过测试,它始终是相同的文件),并且当两个+进程尝试读取同一文件时偶尔会发生冲突。