网络调用永不超时

2024-01-16

我有许多使用各种 Web 技术的应用程序,例如 SOAP、WCF 服务或简单的 XmlReader。然而,如果互联网连接在错误的时间出现问题,它们似乎都会遇到同样的问题,即错过超时并无限挂起。

我已将所有场景中的超时设置为较小的值,例如对于WCF

closeTimeout="00:00:15" openTimeout="00:00:15" 
receiveTimeout="00:00:15" sendTimeout="00:00:15"

或用于肥皂

_Session.Timeout = (int)TIMEOUT.TotalMilliseconds;

这些超时通常确实会遇到,但是似乎存在一些特殊情况,如果互联网在正确的时间断开,则调用将挂起并且永远不会超时(使用同步调用)。

我正在考虑每次拨打电话时启动计时器,并使用适当的.Abort()函数如果定时器到期则取消呼叫。但是,我想知道是否有更简单的方法来解决问题并确保超时。

有谁知道为什么会发生这种情况,如果是的话,有什么干净/简单/好的方法可以确保调用始终超时?


我可以猜测why它发生了,但没有给出解决方案:(

I suspect它陷入了 DNS 解析的困境。我见过各种“不算数”的情况 - 例如它最终发生在异步调用的启动线程上,或者它绝对不包含在超时中。

如果您能够通过拔出网络电缆来重现此情况,我建议使用 Wireshark 来确认我的猜测 - 这至少会建议进一步的调查途径。例如,也许 .NET 堆栈中的某处存在 DNS 超时,该超时通常是无限的,但可以进行调整。

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

网络调用永不超时 的相关文章

  • 到底什么是“位填充”或“填充位”?

    我只是在互联网上找不到任何关于 位填充 真正含义的详细解释 并且在 Stack Overflow 上也没有找到与位填充相关的线程的任何答案 我还搜索了 ISO 9899 1990 其中提到了 位填充 但没有根据我的需要进行解释 我在网上找到
  • 除了第一列之外,Gridview 行可点击?

    我使用以下代码使 gridview 的整行可单击 protected void gridMSDS RowDataBound object sender GridViewRowEventArgs e if e Row RowType Data
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • Ruby 解释器嵌入到 C 代码中

    我只是尝试书中的一个简单例子 我有一个 sum rb 文件 class Summer def sum max raise Invalid maximum max if max lt 0 max max max 2 end end 还有一个
  • 使用inotify监控文件

    我正在使用 inotify 来监视本地文件 例如使用 root temp inotify add watch fd root temp mask 删除该文件后 程序将被阻止read fd buf bufSize 功能 即使我创建一个新的 r
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • EASTL 与 STL 相比,std::vector::operator[] 怎么会有这么大的性能差异

    根据http www open std org jtc1 sc22 wg21 docs papers 2007 n2271 html http www open std org jtc1 sc22 wg21 docs papers 2007
  • 如何在单独的类库中管理客户端上下文对象?

    我正在尝试创建一个库 类库 对于共享点 它将拥有所有共享点 dll 来与共享点服务器交互上传文件 文档并创建文档库和文档集 现在这个库可以被使用客户端 例如 Web 应用程序 asp net webform 或 mvc 或控制台应用程序或
  • tcmalloc/jemalloc 和内存池之间有什么区别(以及选择的理由)?

    tcmalloc jemalloc是改进的内存分配器 还引入了内存池以更好地分配内存 那么它们之间有什么区别以及在我的应用中如何选择它们呢 这取决于您的程序的要求 如果您的程序有更多的动态内存分配 那么您 需要从可用的分配器中选择一个内存分
  • 为什么 C# 编译的正则表达式比等效的字符串方法更快?

    每次我必须对字符串执行简单的包含或替换操作 其中我正在搜索的术语是固定值 时 我发现如果我获取示例输入并对其进行一些分析 则使用编译的正则表达式是几乎 总是比使用 String 类中的等效方法更快 我尝试过比较多种方法 hs是要搜索的 干草
  • XPath 选择具有特定属性值的元素?

    我在使用 XPath 选择节点时遇到问题 我将展示一个示例 由于实际数据量很大 xml 文件被缩短了 这是 XML 的子集
  • System.Drawing.Icon 构造函数抛出“操作成功完成”异常

    在 Windows XP 计算机上 以下代码抛出 System ComponentModel Win32Exception 并显示消息 操作成功完成 System Drawing Icon icon new System Drawing I
  • 当“多次安装 MSBuild”时,Dotnet 项目转换尝试转换失败

    try convert w Test csproj target framework netstandard2 0 结果是 Multiple installs of MSBuild detected please select one In
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi

随机推荐

  • 无法找到并单击条件条款按钮

    我是 pupeeteer 的新手 首先我要做的是加载页面并单击按钮 但是 它无法找到该元素 我认为这是因为我需要找到父元素或父元素的父元素
  • Asp.net Mvc 4 和 Web Api 中的路由

    我可以同时使用以下两个路由规则吗 config Routes MapHttpRoute name ActionApi routeTemplate api controller action id defaults new id RouteP
  • IE11 中奇怪的 @font-face 问题(仅在您检查开发人员工具中的元素后才呈现)

    我有一些网络字体可以在除 IE11 之外的所有浏览器中正常工作 奇怪的是 如果你进入这个页面 然后使用 IE11 开发人员工具检查 功能 要点 突然所有字体都可以工作了 有任何想法吗 font face font family Helvet
  • POSIX“tee”命令如何工作?

    tee newOutputFile lt existingInputFile gt newOutputFile2 究竟会怎样tee接受论点 会是这样吗 Tee将首先处理newOutputFile lt existingInputFile所以
  • CSS3连续旋转动画(就像加载日晷)

    我正在尝试使用 PNG 和 CSS3 动画来复制 Apple 风格的活动指示器 日晷加载图标 我让图像旋转并连续进行 但动画完成后在进行下一次旋转之前似乎有延迟 webkit keyframes rotate from webkit tra
  • JfreeChart 中的自动缩放 Y 轴

    我在用JFreeChart在我的 Java 应用程序中创建蜡烛图 然而 我的图表最终看起来像这样 http imageshack us photo my images 69 capturebhx png http imageshack us
  • 出现分段错误

    我看到很多关于出现分段错误在SO中的C程序中 我认为参考这里的内容会很棒 这是一个涉及某些导致分段错误的情况的问题 我的答案发布在下面 正如一些答案中所写 所有情况下的行为都是未定义的 尽管很多人都将他们视为分段故障 所以这个问题是关于是什
  • 如何有条件地使用“平面图”运算符? (角度2/rxjs)

    我想要实现的是有条件地运行一系列可观察的结果 return observable map response gt response flatmap response1 gt observable1 response1 flatmap res
  • 找不到符号 if 语句错误

    我一直在编写一个小程序来娱乐 但我收到了这个错误 Compilation error time 0 11 memory 380672 signal 0Main java 22 error cannot find symbol string
  • 从列表中选择 5 个不同的元素?

    从 python 列表中选择 5 个不同元素并将它们添加到新列表中的最佳方法是什么 谢谢您的帮助 假设您希望随机选择它们并且new list已经定义了 import random new list random sample old lis
  • 如何实现隐式方法的中间类型?

    假设我想提供方法foo在现有类型上A在我的控制之外 据我所知 在 Scala 中执行此操作的规范方法是实现从A到某种实现的类型foo 现在我基本上看到两个选择 为此目的定义一个单独的 甚至可能是隐藏的类 protected class Fo
  • 当用户拒绝地理定位服务时,我会收到拒绝事件吗?

    我的意思是 如果我在网页上有一个按钮 当用户单击该按钮时 然后就可以获取用户的地理位置信息 但在此之前 浏览器会询问用户是否接受使用地理定位服务 如果用户拒绝地理定位服务 我可以获得拒绝事件吗 Yes Example navigator g
  • 如何通过nodejs实现APNS通知?

    现在有人有一个很好的 npm 模块来实现 Apple PUSH 通知吗 一个简单的例子就很好了 我找到的解决方案如下 它使用apn module var apn require apn var ca entrust 2048 ca cer
  • 将一个函数中的可变参数传递给 D 中的另一个函数

    我有一个可变的 D 风格函数foo format 这是一个包装器writefln 我想做这样的事情 foo format lt gt writefln format 本质上 将省略号参数传递给 writefln 我知道这在 C C 中并不容
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • NSURLConnection sendAsynchronousRequest:queue:completionHandler:连续发出多个请求?

    我一直在使用NSURLConnection s sendAsynchronousRequest queue completionHandler 方法很棒 但是 我现在需要连续发出多个请求 我怎样才能在仍然使用这个伟大的异步方法的同时做到这一
  • 将整型转换为枚举:函数式转换与初始化

    假设有一个这样的枚举 enum foo int first second 然后我按如下方式使用它 foo f 1 error cannot initialize a variable of type foo with an rvalue o
  • 在不同主机上预编译具有相同摘要的资产

    是否可以使用相同的摘要在不同主机 流量路由 上编译资产 例如 如果我的 Rails 3 2 应用程序部署到 2 个不同的主机 host1 和 host2 我想要application css在具有相同摘要的主机 1 和主机 2 上appli
  • 使用 RaptureXML 行计数返回错误的数字

    我目前正在使用 Rapture XML 从 url 中提取数据以显示在表视图中 我已经设法获取我需要的每个字符串并将其添加到我的数组中 如下所示 void loadURL RXMLElement rootXML RXMLElement el
  • 网络调用永不超时

    我有许多使用各种 Web 技术的应用程序 例如 SOAP WCF 服务或简单的 XmlReader 然而 如果互联网连接在错误的时间出现问题 它们似乎都会遇到同样的问题 即错过超时并无限挂起 我已将所有场景中的超时设置为较小的值 例如对于W