我正在进行一些相当密集的数据库工作,并最终将许多记录插入到数据库中。为了最小化上下文膨胀,我每次进行100次插入,处理完上下文后重新创建上下文。
我遇到了一些奇怪的错误,我不明白这些错误。这些错误只在我们的生产服务器上发生,但在开发服务器上一切正常。如果有人能够解释可能出现的问题,我会非常感激。
System.Data.Entity.Core.EntityCommandExecutionException: 执行命令时发生错误。有关详细信息,请参阅内部异常。 System.Data.SqlClient.SqlException: 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 信号量超时期已到期)。 System.ComponentModel.Win32Exception: 信号量超时期已到期。 System.Data.SqlClient.SqlException (0x80131904): 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 指定的网络名称不再可用)。 System.ComponentModel.Win32Exception (0x80004005): 指定的网络名称不再可用。 System.Data.Entity.Infrastructure.CommitFailedException: 在提交数据库事务时报告了一个错误,但无法确定事务在数据库服务器上成功还是失败。请参阅内部异常和http://go.microsoft.com/fwlink/?LinkId=313468以获取更多信息。 System.Data.SqlClient.SqlException: 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 指定的网络名称不再可用)。 System.ComponentModel.Win32Exception: 指定的网络名称不再可用。 System.Data.Entity.Core.EntityException: 已引发一个异常,可能是由于短暂故障引起。如果您正在连接到 SQL Azure 数据库,请考虑使用 SqlAzureExecutionStrategy。 System.Data.Entity.Core.EntityCommandExecutionException: 执行命令时发生错误。有关详细信息,请参阅内部异常。 System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 远程主机强制关闭了现有连接)。 System.ComponentModel.Win32Exception: 远程主机强制关闭了现有连接。
这些错误在过程中出现的时间完全是随机的(我有一个计数器告诉我在哪里)。查找这些错误时,似乎它们是网络错误。我无法访问我的数据库服务器日志,所以我无法在那里查看。我的Web服务器日志没有揭示发生了什么。任何帮助都将是fantastic。
编辑:
我没有运行Azure。
我也遇到了很多主键冲突错误:
System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误。请参见内部异常以获取详细信息。
System.Data.Entity.Core.UpdateException:更新条目时发生错误。请参见内部异常以获取详细信息。
System.Data.SqlClient.SqlException:违反'PK_dbo.MissileDataReferences'主键约束。无法在对象'dbo.MissileDataReferences'中插入重复键。重复键值为(4277,2,448388)。
我遇到了一些奇怪的错误,我不明白这些错误。这些错误只在我们的生产服务器上发生,但在开发服务器上一切正常。如果有人能够解释可能出现的问题,我会非常感激。
System.Data.Entity.Core.EntityCommandExecutionException: 执行命令时发生错误。有关详细信息,请参阅内部异常。 System.Data.SqlClient.SqlException: 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 信号量超时期已到期)。 System.ComponentModel.Win32Exception: 信号量超时期已到期。 System.Data.SqlClient.SqlException (0x80131904): 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 指定的网络名称不再可用)。 System.ComponentModel.Win32Exception (0x80004005): 指定的网络名称不再可用。 System.Data.Entity.Infrastructure.CommitFailedException: 在提交数据库事务时报告了一个错误,但无法确定事务在数据库服务器上成功还是失败。请参阅内部异常和http://go.microsoft.com/fwlink/?LinkId=313468以获取更多信息。 System.Data.SqlClient.SqlException: 在接收服务器返回结果时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 指定的网络名称不再可用)。 System.ComponentModel.Win32Exception: 指定的网络名称不再可用。 System.Data.Entity.Core.EntityException: 已引发一个异常,可能是由于短暂故障引起。如果您正在连接到 SQL Azure 数据库,请考虑使用 SqlAzureExecutionStrategy。 System.Data.Entity.Core.EntityCommandExecutionException: 执行命令时发生错误。有关详细信息,请参阅内部异常。 System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级别错误(提供程序:TCP 提供程序,错误:0 - 远程主机强制关闭了现有连接)。 System.ComponentModel.Win32Exception: 远程主机强制关闭了现有连接。
这些错误在过程中出现的时间完全是随机的(我有一个计数器告诉我在哪里)。查找这些错误时,似乎它们是网络错误。我无法访问我的数据库服务器日志,所以我无法在那里查看。我的Web服务器日志没有揭示发生了什么。任何帮助都将是fantastic。
编辑:
我没有运行Azure。
我也遇到了很多主键冲突错误:
System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误。请参见内部异常以获取详细信息。
System.Data.Entity.Core.UpdateException:更新条目时发生错误。请参见内部异常以获取详细信息。
System.Data.SqlClient.SqlException:违反'PK_dbo.MissileDataReferences'主键约束。无法在对象'dbo.MissileDataReferences'中插入重复键。重复键值为(4277,2,448388)。