- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WCF 服务,可以根据输入参数返回大量数据。
该服务作为 ServiceHost 可执行文件在我的机器上运行,我现在正在使用 WCF 测试客户端进行测试。
这是我的主机配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ExchangeRepository"
closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:10:00"
transactionFlow="false" transferMode="Streamed"
transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard"
listenBacklog="500" maxBufferPoolSize="2147483646"
maxBufferSize="2147483646" maxConnections="500"
maxReceivedMessageSize="2147483647" >
<readerQuotas
maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="MyCompany.MyApplication.DataServices.ExchangeRepository"
behaviorConfiguration="MyCompany.MyApplication.DataServicesBehavior">
<endpoint address =""
binding="netTcpBinding"
contract="MyCompany.MyApplication.DataServices.IExchangeRepository"
bindingConfiguration="NetTcpBinding_ExchangeRepository"
behaviorConfiguration="MyCompany.MyApplication.EndpointBehavior">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress = "net.tcp://localhost:8896/ExchangeRepository/" />
<add baseAddress = "http://localhost:8895/ExchangeRepository/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyCompany.MyApplication.DataServicesBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="MyCompany.MyApplication.EndpointBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
这是我的客户端配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="endpointBehaviour">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IExchangeRepository" closeTimeout="00:10:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Streamed" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="2147483647" maxConnections="10"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost:8896/ExchangeRepository/"
behaviorConfiguration="endpointBehaviour" binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IExchangeRepository" contract="IExchangeRepository"
name="NetTcpBinding_IExchangeRepository">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
这是我得到的错误:
The socket connection has been disposed.
Server stack trace:
at System.ServiceModel.Channels.SocketConnection.ThrowIfNotOpen()
at System.ServiceModel.Channels.SocketConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.DelegatingConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.PreReadConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.SingletonConnectionReader.SingletonInputConnectionStream.ReadCore(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.SingletonConnectionReader.SingletonInputConnectionStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.MaxMessageSizeStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.SingletonConnectionReader.Close(TimeSpan timeout)
at System.ServiceModel.Channels.SingletonConnectionReader.SingletonInputConnectionStream.Close()
at System.ServiceModel.Channels.DelegatingStream.Close()
at System.Xml.XmlBufferReader.Close()
at System.Xml.XmlBaseReader.Close()
at System.Xml.XmlBinaryReader.Close()
at System.Xml.XmlReader.Dispose(Boolean disposing)
at System.Xml.XmlReader.Dispose()
at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents(Message message, Object[] parameters, Boolean isRequest)
at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeReply(Message message, Object[] parameters)
at System.ServiceModel.Dispatcher.ProxyOperationRuntime.AfterReply(ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at IExchangeRepository.SearchExchangeRequest(String AccountNumber, Int32 StatusCode, Int32 StartDate, Int32 EndDate)
at ExchangeRepositoryClient.SearchExchangeRequest(String AccountNumber, Int32 StatusCode, Int32 StartDate, Int32 EndDate)
Inner Exception:
The socket connection has been disposed.
Object name: 'System.ServiceModel.Channels.SocketConnection'.
当返回的数据多于一定数量的记录时会发生错误。使用较少的数据,一切都按预期工作。
关于如何解决这个问题有什么建议吗?
最佳答案
这一切都是由愚蠢的数据问题引起的。错误信息是绝对没有用的。启用跟踪允许查看实际异常。谢谢你,EkoostikMartin!
关于c# - WCF 错误 "The socket connection has been disposed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162190/
我在 dispose 和 finalize 之间犹豫不决。这是我的示例代码: public class Car:IDisposable { public string name
我有一个 Activity,我在其中创建并订阅 Single 类的多个实例(每个实例都在单独的后台线程中执行一些工作)。对于每个订阅,我将创建的 Disposable 实例添加到 CompositeD
我有一个服务、一个存储库和一个 DbContext。存储库拥有 DbContext,服务拥有存储库。 我的存储库应该实现 IDisposable 吗?如果是这样,我的服务是否也应该实现 IDispos
我有一个基于字符串列表处理文件流的应用程序,字符串可以是磁盘上的文件,也可以是 Zip 文件中的文件。为了清理代码,我想重构打开文件的过程。 我创建了一个返回文件内容 Stream 的方法,但是因为流
有没有一种方法可以从 Dispose 方法中取消处置,换句话说,在调用 A.Dispose() 时不处置 A。 更新我没有很好地解释,因为我想不出一个很好的方式来表达它。我拥有的是一个在单独线程中运行
如以下示例实现即 https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose有一
我开始用 FXCop 来处理我的一些程序集,并注意到一些有趣的事情,我正试图全神贯注。 "Types that declare disposable members should also imple
当我创建表单时,自动生成的代码不包含重写的 Dispose 方法。这是否意味着没有为表单中的所有控件调用 Dispose? 最佳答案 当您在表单上调用 Dispose 时,它会为其 Controls
在我的 WPF 应用程序代码中,我收到以下警告: CA1001 Types that own disposable fields should be disposable Implement IDis
每当我读到 Close() 和 Dispose() 时,我都会看到很多只使用 Using Block 的引用资料,但我还没有找到如何在 WebMatrix C# Razor 语法中使用 Using B
我是 c# 和 VSTO 的新手。 我有一个 Excel 插件,我在其中创建了一个功能区和一些可以执行各种操作的新按钮。 我在 base.Dispose 中收到 NullReferenceExcept
我在 FCL 代码中发现了一个不寻常的样本。 这是 System.IO.BinaryReader 中的方法: protected virtual void Dispose(bool dispo
我正在尝试遵循以下教程并将其从 C# 转换为 Vb.net http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef
我有一个 LINQ 对象,其中添加了一个附加方法。该类没有一次性属性或方法,但 FxCop 引发错误“拥有一次性字段的类型应该是一次性的”并引用该类。 到目前为止我已经减少了代码,但仍然收到错误: p
因此,默认的处理模式实现如下所示: class SomeClass : IDisposable { // Flag: Has Dispose already been called? bo
我在 WinForms 应用程序中使用 RxFramework。我正在尝试运行 Observable 异步并使用 CancellationDisposable 在用户单击按钮时取消操作。但它不工作!
有很多从 .NET 中的函数返回 IDisposable 对象数组或列表的示例。例如,Process.GetProcesses()。 如果我调用该方法,我是否有责任在遍历数组的所有成员时对它们进行 D
如果我用 C# 编写一个实现 IDisposable 的类,为什么我不能简单地实现 public void Dispose(){ ... } 处理释放任何非托管资源? 是 protected virt
LibGDX - 是否应该先执行 texture.dispose() 然后再执行 batch.dispose()?还是没有什么不同? 我有以下简单的代码。我的问题是 texture.dispose()
当应用程序收到来自服务的调用时,它会为每个调用打开一个表单。用户必须在每个窗口中进行输入并关闭它。为了让用户的工作顺利进行,我试图在显示下一个窗口时重新激活用户正在处理的窗口。 执行此操作的方法如下:
我是一名优秀的程序员,十分优秀!