当前位置: 首页 > 知识库问答 >
问题:

WCF通信错误

西门旻
2023-03-14

几天来,我们一直遇到一个WCF通信错误,我不知道是什么导致了这个错误。我最初认为这是一个SSL证书问题,但它不是。我还确保只要在web浏览器上输入URL就可以到达endpoint,并且可以查看。我还确保默认的请求大小不会导致这个问题。我确信这些请求小于默认的30MB。

还有什么东西可以防止这种堆栈跟踪错误?

客户端堆栈跟踪:

由于通信失败,WCFDirector获取失败。

因为表单没有正确加载,所以必须关闭它。---

服务器堆栈跟踪:

在System. ServiceModel. Channel. HttpChannelU的System. ServiceModel. Channels.请求(Message,TimeSpan超时)在System. ServiceModel. Channel. ServiceChannel. ServiceChannel. In的System. ServiceModel. ServiceChannel.的System. ServiceModel.的HttpServiceChannel. HuitForReple(TimeSpan超时)(Message,TimeSpan超时)(Message,TimeSpan超时)在System. ServiceModel. Dispatcher.请求ChannelBinder.请求(Message消息,TimeSpan超时)在System. ServiceModel. Channel. ServiceChannel.打电话(字符串操作,布尔单向,Proxy操作运行时操作,Object[]ins,Object[]out,TimeSpan超时)在System. ServiceModel. Channel. ServiceChannelProxy. In

共有1个答案

范京
2023-03-14

尝试关闭KeepAlive。类似于:

var client = new MyWcfClient();
var customBinding = new CustomBinding(client.Endpoint.Binding);
var transportElement = customBinding.Elements.Find<HttpTransportBindingElement>();

transportElement.KeepAliveEnabled = false;

client.Endpoint.Binding = customBinding;

Rest API 和 SOAP 的仅配置版本

<services>
  <service name="SecureTransportDemo.Service.GreetingService">
    <endpoint address="Soap"
              binding="customBinding" 
              bindingConfiguration="soap-secure-nokeepalive"
              contract="SecureTransportDemo.Service.IGreetingService"
              name="soap-nokeepalive"/>
    <endpoint address="Rest"
              binding="customBinding"
              bindingConfiguration="rest-secure-nokeepalive"
              behaviorConfiguration="web"
              contract="SecureTransportDemo.Service.IGreetingService"
              name="rest-nokeepalive"/>
  </service>
</services>
<bindings>
  <customBinding>
    <binding name="soap-secure-nokeepalive">
      <textMessageEncoding />
      <httpsTransport allowCookies="false" 
                      keepAliveEnabled="false"/>
    </binding>
    <binding name="rest-secure-nokeepalive">
      <webMessageEncoding />
      <httpsTransport manualAddressing="true" 
                      allowCookies="false" 
                      keepAliveEnabled="false"/>
    </binding>
  </customBinding>
</bindings>
<behaviors>
  <endpointBehaviors>
    <behavior name="web">
      <webHttp automaticFormatSelectionEnabled="true"
               faultExceptionEnabled="true"
               helpEnabled="true"/>
    </behavior>
  </endpointBehaviors>
</behaviors>
 类似资料:
  • 构建信息:版本:'2.53.1',修订:'A36B8B1CD5757287168E54B817830ADCE9B0158D',时间:'2016-06-30 19:26:09'系统信息:host:'fms-dev',IP:'192.168.1.56',OS.name:'Windows 8.1',OS.arch:'AMD64',OS.version:'6.3',java.version:'1.8.0_

  • 问题内容: 简短版本: 在启用AJAX的WCF服务中引发异常时(除了仅打开闸门并将所有异常详细信息发送回去),是否有建议的方法将错误详细信息返回给客户端? 长版: 我有一个相对简单的启用AJAX的WCF服务,可以使用默认服务代理从客户端调用该服务。我在下面提供了代码段,但我不认为代码本身有什么问题。 我的问题是,如果我在服务中引发异常,则返回给客户端的错误对象总是通用的: 理想情况下,我想根据出了

  • 问题内容: 我对WCF有点陌生,将尝试清楚地描述我要做什么。 我有一个使用JSON请求的WCF Web服务。我在大多数情况下都可以很好地发送/接收JSON。例如,以下代码可以正常运行,并且符合预期。 JSON已发送: WCF: 这将按预期返回带有“ Dave”的JSON对象。问题是我无法始终保证我收到的JSON与我的DataContract中的成员完全匹配。例如,JSON: 由于大小写不匹配,将无

  • WCF

    Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。WCF 整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。是Windows平台上开发分布式应用最佳的实践方式。 简单的归结为四大部分 1>.网络服务

  • 问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服

  • 本文向大家介绍wcf WCF中的序列化,包括了wcf WCF中的序列化的使用技巧和注意事项,需要的朋友参考一下 示例 序列化是将对象转换为字节流以存储对象或将其传输到内存,数据库或文件的过程。Microsoft页面序列化 下面的示例演示了WCF中的序列化: [DataContract]属性与类一起使用。在这里,它装饰有Person阶级。 [OperationContract]用于方法。在这里用Ad