生产环境中无法解释的 SQL 错误 - 可能与网络相关

2024-02-09

我正在做一些相当密集的数据库工作,最终将很多很多记录插入到数据库中。为了尽量减少上下文膨胀,我一次执行 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.Infrastruct.CommitFailedException:提交数据库事务时报告错误,但无法确定事务在数据库服务器上是成功还是失败。查看内部异常和http://go.microsoft.com/fwlink/?LinkId=313468 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:远程主机强制关闭现有连接

这些错误在过程中发生的时间是完全随机的(我有一个计数器可以告诉我在哪里)。查找这些错误,看起来好像它们是网络错误。我无权访问我的数据库服务器日志,因此无法查看那里。我的网络服务器日志没有说明正在发生的事情。任何帮助都会很棒。

EDIT:

我没有运行 Azure。

我也收到了大量主键违规错误:

System.Data.Entity.Infrastruct.DbUpdateException:更新条目时发生错误。有关详细信息,请参阅内部异常。

System.Data.Entity.Core.UpdateException:更新条目时发生错误。有关详细信息,请参阅内部异常。

System.Data.SqlClient.SqlException:违反主键约束“PK_dbo.MissileDataReferences”。无法在对象“dbo.MissileDataReferences”中插入重复的键。重复的键值为 (4277, 2, 448388)。


他们很烦人不是吗?是的,您可以在任何高容量网站上获得这些内容。

这似乎就是微软在 SQL Azure 中引入 Azure 重试策略的原因。您甚至希望他们能够保证其网站和同一网络上同一数据中心的数据库之间的连接。但他们不能。

您可以为 Azure 打开此功能(您没有说您是否正在使用 Azure,但我怀疑不是)。看https://learn.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-issues https://learn.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-issues需要更改连接字符串。

https://msdn.microsoft.com/en-us/library/dn456835(v=vs.113).aspx https://msdn.microsoft.com/en-us/library/dn456835(v=vs.113).aspx还涵盖 Azure 上的 EF6。

也许这不是您想要的答案,但我认为您应该考虑使用波莉图书馆 https://www.nuget.org/packages/polly因为它使您能够为每个命令显式设置重试逻辑。

为什么您不想对每个调用都执行此操作(以节省每个命令的重试编码)?好吧,我过去遇到过很多问题,我们重试了插入等逻辑,并在稍后再次重复(导致主键冲突),因为响应没有返回给客户端。

因此,仅针对安全的“只读”调用执行此操作,如果必须重试写入,请放置处理程序以检测重复插入,然后与服务器仔细检查并询问用户他们想要做什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生产环境中无法解释的 SQL 错误 - 可能与网络相关 的相关文章

  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • Visual Studio 2015 C# 找不到参考

    我在使用 Visual Studio 2015 和 C 时遇到了问题 在同一解决方案中添加对其他项目的引用时 Visual Studio 找不到所有类 例如 我创建了一个单元测试项目 我添加了对我创建的通信项目的引用 库中有 10 个类 但
  • 如何使用 EF Code First 解释枚举类型

    这是一个模型 Public class Person Key Public int PersonId get set Public int Age get set Public ColorEnum FavoriteColor get set
  • 二维数组的列求和

    我有一个IEnumerable
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • C++ 中类型信息何时向后流动?

    我刚刚看了 Stephan T Lavavej 的演讲CppCon 2018关于 类模板参数推导 在哪里某个点 https youtu be H ut6j1BYU t 941他顺便说 在 C 中 类型信息几乎永远不会向后流动 我不得不说 几
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • Jquery Ajax 调用返回 403 状态

    我有一个 jquery Ajax 调用来实现会话的 keepalive 这个 keepAlive 方法将每 20 分钟调用一次 function keepAlive ajax type POST url KeepAliveDummy asp
  • Kendo 刷新 (DropDownList.refresh()) 不起作用错误未定义

    我试图在另一个 DropDownList 更改后刷新下拉列表 但 Refresh 方法未定义错误正在升级 我尝试再次读取数据源 它显示它正在加载 但数据仍然相同 帮助解决这个问题请 Code DropDownList1 change fun
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • EF 5.0 枚举未生成

    背景我在安装了 Net 4 5 的机器上使用 VS 2010 我读到这是就地安装 覆盖了 net 4 0 版本 我的项目仍然针对 4 0 而 4 5 选项不可用 但被告知没关系 因为 4 5 是就地安装 然后 我通过 nuget 安装了 E
  • 如何防止 SQL Server 在导入数据时去除前导零

    A data file被导入到SQL Server桌子 数据文件中的一列是文本数据类型 该列中的值只能是整数 SQL Server 数据库中目标表中的相应列的类型为varchar 100 但在数据导入后 SQL Server 会存储以下值
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • C 中函数“fgets”的参数太少

    每当我编译这个错误时 我都会收到该错误 但我不知道为什么 我直接从书上抄袭这个 有人可以帮忙吗 include
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用
  • 打开脚本任务时 SSIS 丢失文件引用

    我们使用自定义审核程序集 C 在脚本任务中记录 SSIS 中的多种操作 我们将在 GAC 中构建自定义程序集 用于运行时 并发布到 IDE VS2008 的公共程序集区域以供设计时文件引用 后构建完成后 自定义程序集可在运行时使用 并可在文
  • 应用非限定名称查找而不是依赖于参数的名称查找

    考虑标准 sec 3 4 1 3 中的一个示例 typedef int f namespace N struct A friend void f A operator int void g A a int i f a f is the ty
  • ASP.NET API:尚未为此 DbContext 配置数据库提供程序

    我正在尝试从我的 Net Core API 项目连接到 MySql 数据库 这是我的上下文类 public class MyContext DbContext public MyContext public MyContext DbCont

随机推荐

  • Java 中是否有一个类可以对一周中的当地时间进行编码?

    我想制定一个一周一周的时间表 因为每周的时间表都是相同的 所以我需要存储的唯一信息是星期几及其发生的时间 例如 Monday 2 30pm 实际日期并不重要 时区也不重要 到目前为止 我一直在编写将日期和时间分开的代码 使用DayOfWee
  • SAAgent.class 上的 Proguard 错误

    我正在开发一个Samsung Gear与三星的应用程序accessory v1 0 0 jar 当我尝试创建签名的 apk 执行 proguard 步骤 时 我得到Unknown verification type 10 in stack
  • 将 simpleAdapter 与列表视图的图像一起使用

    我在使用简单适配器将图像放入列表视图时遇到了一些问题 我从我的在线服务器 亚马逊 获取图像 根据用户 ID 下载图像后 我尝试在列表视图中设置它们 但没有显示任何内容 也没有发生错误 下面是我的代码 looping through All
  • django图像存储cdn

    过去几个月我一直在使用rackspace CDN 以及 django imagekit 和 django cumulus 我对结果并不满意 由于超时等原因 我似乎收到了很多错误 File www django test1 omu2 src
  • 是什么导致 EXE 的大小变大?

    我的可执行文件大小为 364KB 它没有使用 Vector2D 类 因此我使用重载运算符实现了一个 我改变了我的大部分代码 point x point2 x point y point2 y to point point2 这导致我删除了近
  • 使用 WebClient 的 Silverlight 后台线程

    我正在使用一个WebClient从我的网络服务异步获取信息 wc DownloadStringCompleted DownloadStringCompleted wc DownloadStringAsync service 我工作得很好 但
  • React-Native 最低 Android API 级别

    我正在对react native和android进行一些研究 有谁知道android的最低api级别react native支持吗 我搜索了他们的文档页面 但找不到它 支持的操作系统 gt Android 4 1 API 16 和 gt i
  • DiffUtil.Callback 未按预期工作

    我正在使用 DiffUtil ItemCallback 和 ListAdapter 来更新 RecyclerView 它运行得很好 但它的行为有些让我困扰 根据文档 areContentsTheSame仅当以下情况时才应该调用方法areIt
  • `ValueError: 太多值无法用 `scipy.stats.linregress` 解包(预期为 4)`

    我知道这个错误消息 ValueError too many values to unpack expected 4 当设置的变量数量多于函数返回的值时 就会出现 scipy stats linregress根据 scipy 文档返回 5 个
  • 在哪里可以学习对数? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在编程环境中经常听到对数的提及 它们似乎可以解决许多问题 但我似乎无法找到使用它们的现实方法 我读过
  • Twilio IBM Watson Speech To Text Addon 回调功能未触发

    我的目标是使用 Twilio 平台上提供的 IBM Watson Speech to Text Addon Twilio 附加功能 进行转录 呼叫者的输入 IVR 对话 IBM Watson 语音转文本插件已安装 Problem 回调 UR
  • 在Java中,如何更有效地追加字符串? [复制]

    这个问题在这里已经有答案了 我写了一个Java程序 我需要在其中附加一个字符串 u13a2 到现有的 u1234 u12de u1386 u15a3 渐渐地 绳子变得越来越长 我发现每次追加所花费的时间也变得越来越长 有什么办法可以在一定程
  • Pylint 函数名称无效

    我正在使用 Python 3 6 2 运行 Pylint 1 7 2 Pylint 显示以下错误 Invalid function name create maximization option dataframe invalid name
  • jQuery 悬停在表格上的效果

    我是 jQuery 新手 我想在我的桌子上制作悬停效果 但我不知道如何做 我只想将文本设为红色 然后在焦点丢失时如何再次删除红色 这是我到目前为止所拥有的 table border 1 tr th ID th th name th tr t
  • 使用四元数的设备方向

    我编写了一个 JS SDK 来监听移动设备旋转 提供 3 个输入 角度范围为 0 到 360 度 180 到 180 度之间的角度 90 到 90 度之间的角度 设备轮换的文档 https www sitepoint com using d
  • 拖放数据时清除输入字段

    我编写了一个函数 当用户将注意力集中在输入字段上时 该函数会自动清除输入字段的预设值 如果用户没有输入任何值 则将其恢复为模糊状态 所以的价值
  • 触摸浏览器中的元素(如指针事件:无)

    问题 我搜索了又搜索 但找不到有关如何通过覆盖元素触发触摸事件的信息 我通过使用以下方法解决了鼠标单击事件的问题 pointer events none 这很简单 但它不适用于触摸事件 我知道有一些移动原生的东西可以解决这个问题 但这纯粹是
  • 如何使用 Entity Framework 4.1 将连接字符串传递给数据库优先 DBContext 的构造函数?

    由于各种原因我想not将我的实体框架数据库模型的连接字符串存储在各种 config 文件之一中 我将最新最好的 DBContext API 与新的实体框架版本 4 1 NET 4 和 Visual Studio 2010 C 结合使用 但是
  • 为什么重写的函数首先被调用?

    我执行了以下程序 我对得到的输出感到好奇 其中函数输出首先被打印 即使它是我尝试首先打印的变量 class Baap public int h 4 public int getH System out println Baap h retu
  • 生产环境中无法解释的 SQL 错误 - 可能与网络相关

    我正在做一些相当密集的数据库工作 最终将很多很多记录插入到数据库中 为了尽量减少上下文膨胀 我一次执行 100 个插入 处理上下文 然后重新创建上下文 我收到一些我不明白的奇怪错误 这些错误仅发生在我们的生产服务器上 但在开发服务器上一切正