代码之家  ›  专栏  ›  技术社区  ›  MGSoto

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

  •  1
  • MGSoto  · 技术社区  · 16 年前

    我有一台计算机充当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 回复  |  直到 16 年前
        1
  •  0
  •   MGSoto    16 年前

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