C# 是什么导致我的间歇性System.Net.WebException错误?

C# 是什么导致我的间歇性System.Net.WebException错误?,c#,dynamics-crm-2011,C#,Dynamics Crm 2011,我有一个应用程序,它使用Microsoft Dynamics CRM的API插入和更新记录。每当我处理一行中的少量记录时,在尝试进行其中一次更新时,我会遇到以下错误: 2013-02-14 10:25:56,382 - Updating lead in dynamics with leadid [3cdaa9d4-c276-e211-99b6-005056ab0822] 2013-02-14 10:25:58,737 - GetProperty System.Net.WebException:

我有一个应用程序,它使用Microsoft Dynamics CRM的API插入和更新记录。每当我处理一行中的少量记录时,在尝试进行其中一次更新时,我会遇到以下错误:

2013-02-14 10:25:56,382 - Updating lead in dynamics with leadid [3cdaa9d4-c276-e211-99b6-005056ab0822]
2013-02-14 10:25:58,737 - GetProperty
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.ConnectStream.WriteHeaders(Boolean async)
   --- End of inner exception stack trace ---
   at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
   at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.Crm.SdkTypeProxy.Metadata.MetadataService.Execute(MetadataServiceRequest Request)
   at Integration.Crm.Services.Dynamics.LeadService.GetPickListvalue(String pickListlable, String logicalAttributeName) in C:\code\DynamicsIntegration\Services\LeadService.cs:line 1256
通过谷歌搜索,我发现了可能发生此特定错误的几个原因(
System.IO.IOException:身份验证失败,因为远程方关闭了传输流。
),但在所有情况下,由于配置错误或证书损坏,每次都会发生

究竟是什么可能间歇性地触发此错误

这与web请求的内容无关,因为我可以在5分钟后处理同一个请求,这样就可以了。导致此错误的所有服务器请求大约减少10%


编辑:这是一个使用SharePoint的用户,但每次都会发生错误。

使用CRM诊断工具打开跟踪日志记录:查看是否获得任何其他错误信息(假设您使用的是内部部署)。我猜从CRM服务器到SQL数据库的SQL连接有点不太正确。

使用CRM诊断工具打开跟踪日志记录:查看是否获得任何其他错误信息(假设您使用的是内部部署)。我猜从CRM服务器到SQL数据库的SQL连接有点不太正确。

什么版本的CRM?传输的数据块有多大?两者之间是否存在某种差异(代理、防火墙等)?您没有在多个线程之间共享上下文/组织服务,是吗?Microsoft Dynamics CRM 2011(5.0.9690.2243)。两者之间有一个防火墙,但它是开放的(大部分时间都是这样)@达丽尔:没有。@Rob你解决过这个问题吗?我有完全相同的问题,几周内没有解决方案。我的连接也会在大约10%的时间断断续续地关闭。事实上,我们的情况非常相似。你使用什么托管服务?。什么版本的CRM?传输的数据块有多大?两者之间是否存在某种差异(代理、防火墙等)?您没有在多个线程之间共享上下文/组织服务,是吗?Microsoft Dynamics CRM 2011(5.0.9690.2243)。两者之间有一个防火墙,但它是开放的(大部分时间都是这样)@达丽尔:没有。@Rob你解决过这个问题吗?我有完全相同的问题,几周内没有解决方案。我的连接也会在大约10%的时间断断续续地关闭。事实上,我们的情况非常相似。你使用什么托管服务?。我来试试这个。谢谢Daryl。虽然我得到的错误似乎是在网络层——在调用服务器和CRM REST API之间——而不是数据库层。我将尝试一下。谢谢Daryl。虽然我得到的错误似乎是在网络层——在调用服务器和CRM REST API之间——而不是数据库层。