WCF服务超时

我有一个暴露wcf服务的插件。 如果我使用WCFStorm测试这项服务,一切正常。 我马上收到回复。 当我尝试从加载插件的应用程序中使用服务时,我会抽出时间。

ProgrammingMaster_ServiceClient aClient = new ProgrammingMaster_ServiceClient(); aClient.Endpoint.Address = new EndpointAddress("http://localhost:8081/ProgrammingMaster/PM_Service"); aClient.BeginProgrammingSession(0x01); aClient.Close(); 

我正在使用的代码来使用该服务。 ProgrammingMaster_SErviceClient由svcutil.exe生成。

如果我删除该行,我会遇到同样的问题

 aClient.Endpoint.Address = new EndpointAddress("http://localhost:8081/ProgrammingMaster/PM_Service"); 

我不确定我应该在哪里开始调试这个。

被调用的服务在不同的网络上发送消息。 当我通过wcfstorm调用它时,我可以看到服务发送的消息。 所以我知道服务正常。

当我从我的应用程序调用导致超时的服务时,我做错了什么。

编辑:超时后(我正在捕获并记录exception),服务在其他网络上发送它的消息,就像它应该的那样。

编辑2:希望这是一个更好的解释。

所以我有一个暴露Web服务的插件,并使用不同的Web服务。 因此,插件基本上连接到特殊网络上的对象,然后通过使用Web服务传递该对象属性值。

我有一个应用程序公开插件使用的Web服务来提供远程对象值的更新,并使用插件公开的Web服务将命令传递给远程对象。

插件向应用程序发送更新时没有超时问题。 当应用程序使用Web服务通过插件向远程对象发送命令时,我收到超时错误。 超时到期后,执行命令。 因此,Web服务被成功调用。 我想我只是没有得到回复?

编辑3:这是我的应用程序配置文件。 我将发送超时降低到00:00:01,以便等待时间不长,但我真的想修复它,所以它不必每次都超时。

                              

哦…

是的,只有在客户端和服务器都属于同一个应用程序时才会发生超时。

重要的问题是客户端和服务在同一个线程上运行?

如果是这样,那可能是你的问题。 尝试在自己的线程中启动服务,看看是否能解决问题。

打开内置的WCF调试/日志记录function:

http://msdn.microsoft.com/en-us/library/ms733025.aspx

这有助于我解决WCF的各种古怪问题。 只需记住在完成后将其关闭 – 它会将大量数据写入磁盘!

您是否在关闭防火墙的情况下尝试了它,看看是否可能是导致它的原因?