问题标签 [communicationexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
410 浏览

vb.net - 从 ObjectDataSource Select 方法调用 MVC 服务时发生 CommunicationException

我的 Web 应用程序出现以下异常:“通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为它处于故障状态”堆栈跟踪:

" 服务器堆栈跟踪:在 System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout) 在 [0] 处重新引发异常:在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 在 System.Runtime。 Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
at System.ServiceModel.ClientBase1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase1.Close() 在 System.ServiceModel.ClientBase`1.System.IDisposable.Dispose() 在 System.Web.UI.WebControls.ObjectDataSourceView.ReleaseInstance(Object instance) 在 System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect( DataSourceSelectArguments 参数)在 System.Web.UI.WebControls.ObjectDataSource.Select() 在 BudgeteerWeb.EditTransaction.Page_Load(Object sender, EventArgs e) 在 C:\Develop\Budgeteer\BudgeteerWeb\BudgeteerWeb\MemberPages\Transactions\Edit.aspx。 VB:第 27 行"

我从 ObjectDataSource 使用的选择方法中调用 WCF 服务。如果我不使用基于消息的安全性,一切正常。但是,一旦我使用 ClientCredentials 打开 wsHttpBinding,就会出现上述错误。不知道我错过了什么。

ASP 代码:

后面的代码:objectDataSource select 方法使用的函数:

提前致谢。

0 投票
2 回答
1573 浏览

c# - WCF 尝试获取集合使客户端崩溃

我一直在与 EF 一起使用 WCF,并且遇到了发送集合的问题。

我正在使用由 2 个解决方案组成的游乐场,这只是我需要通过线路进行交流的最低限度。在两者之间发送字符串可以正常工作,通过客户端在数据库中添加记录也可以正常工作。但是,我的服务公开了以下合同:

在我的服务中实施,例如:

没有什么不寻常的,因为发送对象似乎工作正常,我希望这也能工作。但是,当从我的客户调用 GetAllCompanies() 时:

一个 CommunicationException 被抛出:

接收对http://localhost:8080/的 HTTP 响应时出错 。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

更多信息:

在 System.Net.HttpWebRequest.GetResponse()
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(时间跨度超时)

我已经通过使用自定义绑定配置(双方都是 basicHttpBinding)在客户端和服务器上将超时更改为 30 分钟:

我在这里想念什么?

0 投票
1 回答
1114 浏览

silverlight - WCF Silverlight 通信异常

这篇文章会很长,我为此提前道歉。

我正在尝试使 Silverlight 应用程序与我从 Visual Studio 运行的服务进行通信,它目前不在 IIS 中托管。我试图让这个原型的代码和配置尽可能少,只是最低限度。互联网上到处都是关于这个问题的答案,但似乎没有一个适用于我的特殊困境。

我的服务方案有一个SimpleServiceAsyncResult,它实现了IAsyncResult接口,一个服务接口,ISimpleService,该服务的实际实现在SimpleService中。该服务实现如下:

项目中有2个xml文件;ClientAccessPolicy.xml 和 CrossDomain.xml,如下所示:

客户端访问策略.xml

跨域.xml

随之而来的是一个 App.config,它看起来像:

应用程序配置

现在,我想看看所有这些好处是否真的有效。所以我创建了一个带有控制台项目的解决方案,只有一个 Program.cs 和 App.config。

该程序当然没有什么特别的,只是最低限度的:

这一切都很好,我得到了我正在寻找的数据,所以我很高兴。我想要实现的下一个目标是使用 Silverlight 应用程序从同一个服务中获取一些数据。

为此,我在我的客户端解决方案中创建了一个 Silverlight 项目,创建了服务引用并进行了 soms 管道。我试图通过在我的 MainPage.xaml.cs 中添加一些代码来执行 SimpleMethod:

完成这个管道后,我认为我可以获取一些数据,但是当它尝试调用 SimpleMethod 时,它会不断从生成的 ServiceReference 代码中抛出 CommunicationException:

我已经为此在网上冲浪了几个小时,最终得到了 CrossDomain.xml 和 ClientAccessPolicy.xml 以及会暴露此问题的方法,但无论我尝试什么,我都会遇到同样的异常。我完全不知道下一步该做什么,希望你能在这方面进一步帮助我。

亲切的问候

0 投票
1 回答
1138 浏览

wcf - 没有异常消息详细信息的 WCF CommunicationException

我从不了解 WCF 的一件事是为什么当服务器遇到未处理的异常时没有异常消息详细信息传播回调用客户端。

例如,如果我有以下服务器代码

我特意引入了一个ObjectGraph,以便在返回DTO对象时引发序列化异常。

如果我有一个调用此服务器GetDTO()方法的客户端,我将得到以下CommunicationException.

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:58.9350000”。

这是绝对没用的。它没有内部异常,甚至没有真正的异常消息。

如果您随后使用 Microsoft Service TraceViewer,您将看到异常,但您必须为此打开诊断跟踪。

应该发回的异常消息是

尝试序列化参数 http://tempuri.org/:GetDTOResult时出错。InnerException 消息是“'TestWCFLib.DTO' 类型的对象图包含循环,如果禁用引用跟踪,则无法序列化。”。有关更多详细信息,请参阅 InnerException。

那么谁能告诉我如何在客户端显示正确的异常消息?显然,设置IncludeExceptionDetailInFaults为 true 并没有什么不同。

0 投票
1 回答
1694 浏览

java - 如何正确处理连接空闲超时错误

我使用 Java 和 SpringFramework 在 Mysql Server 上使用 JdbcTemplate 类进行数据库编程。

用作dborg.apache.commons.dbcp.BasicDataSource数据源。

有时当连接长时间空闲时,CommunicationException会抛出以下消息:

我不想通过将 autoReconnect 参数添加到连接或添加将select 1在每个查询之前执行以确保正确打开连接的属性来处理此问题。我也不想触及 mysql 服务器的配置并提高超时值。

我想做的是正确处理该异常。

我考虑过捕获CommunicationException并重试直到成功,如果失败超过 X 次,则抛出异常,表明重试 X 次失败。

  • 有没有人知道如何处理这个问题?
  • 我的想法怎么样?:)
  • 也许springframework中有一些东西会自动为我做这件事而我错过了?

任何信息将不胜感激。

谢谢!

0 投票
2 回答
892 浏览

php - CommunicationException 与 Windows Phone 7 和 PHP Web 服务

我有一个使用 NuSOAP 库构建的 PHP Web 服务。我已经调整了 Web 服务以与 Windows Phone 一起使用,一切似乎都很好。

问题是当我收到回复时,我收到了 CommunicationException。我认为那是无法识别 ?wsdl 的端点的 url。

我搜索了有关它的信息,但找不到任何解决方法。

我的代码如下:

还有我的 .ClientConfig

我也测试过:

我也测试了一个域名,ip:127.0.0.1,其他端口等。

PHP代码是:

WSDL 网址是: http: //libreriacloud.sytes.net/ws_monster/ws_test.php

0 投票
1 回答
391 浏览

silverlight - Windows Phone 7 Silverlight 服务引用 CommunicationException:“服务器返回错误:未找到”

我正在为 Windows Phone 7 开发一个应用程序。我正在尝试使用由我试图从中获取信息的网站提供的服务。我正在使用异步请求。因此,如果我尝试在没有任何身份验证的情况下从网站获取信息,我会使用以下代码:

它工作正常。但是,一旦我想使用需要身份验证的网站上的服务,我就会得到一个

CommunicationException:_innerException:“服务器返回错误:未找到”

我通过以下方式传递凭据:

我是否通过凭据实际上并不重要,我得到了同样的异常。我真的不知道问题是什么,也许它与身份验证无关。我已经阅读了关于 CommunicationException 的所有文章,但它们无法解决我的问题。

任何帮助将不胜感激!

0 投票
1 回答
117 浏览

wcf - WCF 的 MS 自动生成方法中的内部故障

我对 WCF 有疑问。我的测试代码非常简单。

我从 silverlight 应用程序调用服务器上的服务层方法,并将结果打印到文本框中。

这一切都被try-catch包围着。

当我的服务层方法只是返回一个不断定义的字符串时,似乎没有问题 - 但是一旦它调用一个更复杂的方法,它就会失败。

调试时甚至达不到复杂模型的方法;在此之前它在微软的一些自动生成的代码中失败了:

/WuSIQ.jpg

由于错误消息“NotFound”并不是最有用或最具体的,您可以想象我在谷歌上搜索提示时遇到的麻烦。

我想也许自动生成的代码只能发送简单的数据,所以我制作了一个临时字符串并返回了它,但这并没有帮助。

我已经有:客户端访问策略、添加的服务引用、删除 ServiceReferences.ClientConfig 和 ServiceLayer.svc.cs 中的重复引用。

我正在通过从主窗口运行进行调试,并且我的断点被拾取。

任何人?

0 投票
0 回答
400 浏览

wcf - SIlverlight 5 中的通信异常

我有以下问题。我在本地 IIS 上托管 WCF 服务,并希望在我的 Silverlight 5 应用程序中从中获取数据。我使用 ASP.NET 托管 Silverlight 项目,但我一直收到通信异常。

顺便提一下,我没有创建启用 wcf silverlight 的服务。是这样吗?

我的 Silverlight .clientconfig:

我已经阅读了一些关于该异常的主题,但我没有发现任何有用的东西。

Tnx :)

0 投票
0 回答
1710 浏览

wcf - 无法在异步服务调用中捕获 CommunicationException

我有 WCF 服务,我的客户端是 Silverlight 应用程序。当服务出现故障(网络错误等)时,我在客户端代理上收到此异常:

CommunicationException:通信对象 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel 无法用于通信,因为它处于故障状态。

准确地说,在下面代码的第 5 行:

因此,我尝试将服务调用(来自堆栈跟踪)包装在 try/catch 中,但无济于事,try/catch 永远不会被执行。基本上是这样的:

但是 try catch 永远不会被击中。我怎样才能捕捉到这个异常并优雅地处理它?

TIA。