.Net C# RESTSharp 10 分钟超时

2024-03-07

我已将浏览器控件嵌入到 .Net 表单中,并将其编译为窗口的可执行文件。浏览器控件正在显示我们的 HTML5 图像查看器。该应用程序打开套接字,以便它可以侦听来自各个服务器的“推送”请求。这允许将图像推送到单个用户的桌面。

当传入图像推送请求时,应用程序使用 RESTSharp 调用 REST 服务来生成令牌,供查看器用来显示图像。

只要请求不断到达,一切都会很好。如果出现间歇(时间范围似乎是 10 分钟),则 RESTSharp 请求就会超时。这几乎就像是在尝试 .Net 优化时创建 RESTSharp 工件的新实例并重用旧实例。

这是我正在使用的 RESTSharp 代码:

private async Task<string> postJsonDataToUrl(string lpPostData) {
    IRestClient client = new RestClient(string.Format("{0}:{1}", MstrScsUrlBase, MintScsUrlPort));
    IRestRequest request = new RestRequest(string.Format("{0}{1}{2}", MstrScsUrlContextRoot, MstrScsUrlPath, SCS_GENERATE_TOKEN_URL_PATH));
    request.Timeout = 5000;
    request.ReadWriteTimeout = 5000;
    request.AddParameter("application/json", lpPostData, ParameterType.RequestBody);

    IRestResponse response = await postResultAsync(client, request);
    return response.Content;
} // postJsonDataToUrl

private static Task<IRestResponse> postResultAsync(IRestClient client, IRestRequest request) {
    return client.ExecutePostTaskAsync(request);
} // PostResultAsync

这是发生超时的行:

    IRestResponse response = await postResultAsync(client, request);

我尝试使用 .Net 的 HttpWebRequest 重写它,但遇到了同样的问题。

如果我延长 RESTSharp 超时,我就可以在应用程序“超时”时调用服务器(使用不同的客户端),因此我知道服务器不是问题所在。

代码的初始版本没有等待异步调用结构 - 添加该结构是为了尝试获取有关该问题的更多信息。

除了 REST 超时之外,我没有收到任何错误。

我通过此调用强制进行垃圾收集的成功有限:

GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);

有什么想法吗?


您可能会达到 .Net 应用程序的连接限制,如 MS 文档中所示:

“默认情况下,使用 HttpWebRequest 类的应用程序最多使用两个到给定服务器的持久连接,但您可以为每个应用程序设置最大连接数。”

(https://learn.microsoft.com/en-us/dotnet/framework/network-programming/managing-connections https://learn.microsoft.com/en-us/dotnet/framework/network-programming/managing-connections).

关闭连接应该会有所帮助,或者您可能可以增加限制,这也在文档中

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

.Net C# RESTSharp 10 分钟超时 的相关文章

  • 如何从 webmethod 向 AJAX 调用返回异常?

    我回来了List
  • .NET:EventHandler 竞争条件修复如何工作?

    以下模式用于在引发事件时避免竞争条件 以防另一个线程取消订阅 MyEvent 使其为空 class MyClass public event EventHandler MyEvent public void F EventHandler h
  • 如何正确实现带有 close 方法的处置模式(CA1063)

    框架设计指南 第二版 第 327 页 说 考虑提供方法Close 除了Dispose 如果接近 是该领域的标准术语 这样做时 重要的是使 Close 实现与Dispose并考虑实施IDisposable Dispose方法明确 因此 按照提
  • 为什么数组不可赋值? [复制]

    这个问题在这里已经有答案了 据我所知 C 标准禁止使用数组作为可修改的左值 即在赋值的左侧 int lhs 4 rhs 4 0 1 2 3 lhs rhs illegal 现在 我一直想知道为什么会这样 我可以看到上面的语句 以及写入数组的
  • 如何在方法模板中使用模板类型的引用传递参数?

    我目前正在努力编译以下代码 首先是包含带有方法模板的类的头文件 ConfigurationContext h class ConfigurationContext public template
  • MouseDoubleClick 事件不会冒泡

    我的场景经过简化 我有一个包含员工行的 ListView 在每个员工行中 都有 增加 和 减少 按钮来调整他的工资 假设在我的程序中 双击 员工 行意味着 解雇此人 The problem是当我快速单击 增加 时 这会触发 ListView
  • “已经有一个与此命令关联的打开的 DataReader,必须先将其关闭。”

    我正在开发需要连接到另一个数据库以获取一些数据的应用程序 为此 我决定使用 SqlConnection reader 等 我需要执行一些查询 例如首先我需要获取某个用户的卡 ID 之后我需要通过该卡 ID 获取一些数据 这是我的代码 reg
  • gcc 删除内联汇编代码

    看起来 gcc 4 6 2 删除了它认为函数中未使用的代码 test c int main void goto exit handler asm volatile jmp 0x0 exit return 0 拆解main 0x0804840
  • C# While 循环与 For 循环?

    在 C 中 一个问题已经困扰我一段时间了 它的 While 和 For 循环之间的实际主要区别是什么 它只是纯粹的可读性吗 在 for 循环中本质上可以做的所有事情都可以在 while 循环中完成 只是在不同的地方 举这些例子 int nu
  • 为什么C++中没有“NULL引用”?

    我正在阅读 C 常见问题解答 8 6 什么时候应该使用引用 什么时候应该使用指针 http www parashift com c faq lite refs vs ptrs html 特别是以下声明 可以时使用引用 必要时使用指针 上述情
  • C++中的虚方法表存放在哪里?

    我想知道类对象 不是实例 而是类 如何存储在内存中 class A public int a virtual void f virtual A class B public A public int b void f final overr
  • C# 的 user32 和内核方法列表 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的清单来说明我们可以从中进口什么user32 dll and kernel dll并在 C 中使用 我是 Windows A
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • 如何查明我的字符串是否包含“micro”Unicode 字符?

    我有一个包含实验室数据的 Excel 电子表格 如下所示 g L ppb 我想测试希腊字母 是否存在 如果发现我需要做一些特别的事情 通常 我会写这样的东西 if cell StartsWith matchSequence lt unive
  • 从 DataGridColumn 中绑定到 DataContext 属性

    财产Foo在我的DataContext ViewModel Visibility Foo 但我不知道如何访问Foo里面一个Column 在这种情况下 我认为它可能正在寻找Foo在任何绑定到的对象中DataGrid ItemsSource
  • 比较 C# 中的对象属性[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 通过开源 PCL 使用 API 查看 3D 点云

    我使用 ToF 飞行时间 相机来获取 XYZ 格式的深度数据 为了实现 3D 点云的可视化目的 我想使用开源 PCL 提供的 API 网址为http pointclouds org documentation tutorials pcl v
  • 如何将 IDispatch* 放入托管代码中

    我一直在考虑尝试使用 C 编写一个实现 OPOS 服务对象的 COM 对象 我已经使用自动化和 MFC 在 C 中完成了它 这并不太困难 所以我坚持尝试将其转换为一种方法 我将排除界面中的其他方法 因为它们很简单 或者我希望如此 id 6
  • 如何在 C# 中将 json 转换为平面结构

    我正在尝试用 C 编写函数 将 JSON 转换为键 值对 它应该支持数组 例如下面的 JSON title title value components component id id1 menu title menu title1 tit

随机推荐

  • 如何在客户端获取Tomcat JSESSIONID?

    我想在客户端获取Tomcat的JSESSIONID 那可能吗 如果是 怎么办 Thanks 这取决于 JSESSIONID 的传输方式 如果它是会话 cookie 请参阅如何使用javascript获取cookie http www w3s
  • 如果从数据库加载两次,hibernate 是否会加载同一实例的两个单独副本?

    我知道关于延迟加载有很多不同的问题 但我的问题有点不同 假设我有一个实体 A 其中有实体 B 的集合 类似地 在实体 B 中 我有 A 的集合 在这两种情况下 都使用lazy true 选项 Entity A的实例 aA 有 gt Set
  • 如何安装GWT浏览器插件?

    我如何安装适用于 Chrome 的 GWT 浏览器插件 https chrome google com webstore detail gwt developer plugin jpjpnpmbddbjkfaccnmhnkdgjideiei
  • 如何清除应用程序中的远程通知?

    有没有办法从 iPhone 屏幕顶部向下滑动时清除通知横幅中的远程通知 我尝试将徽章编号设置为零 application applicationIconBadgeNumber 0 代表中didFinishLaunchingWithOptio
  • 在代码中访问编译器常量

    是否可以在如下代码中使用编译器定义的常量 If DEALER DEBUG ID12345 Then If Dealer ID DEALER DEBUG Then Do something End If End If 我正在运行批处理 但我的
  • 如何从 MediaCodec 解码器的输出中提取 PCM 样本

    我正在尝试从解码的 mp4 缓冲区获取 PCM 样本以进行进一步处理 我首先从使用手机相机应用程序录制的视频文件中提取音轨 并且确保当我获得 audio mp4 mime 键时已选择音轨 MediaExtractor extractor n
  • Python 中日期的正则表达式:英国:日-月-年

    我正在尝试使用 python 编写一个 REGEX 来根据 英国 日 月 年 识别日期 我写了一些随机字符串 如下所示 string these are just rubbish 01 13 00 00 44 44 11 2 2222 24
  • 使用 CodeIgniter 的动态表单生成器[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我计划为不同的表单布局构建一个动态表单 http bootsnipp com forms version 3 http bootsnipp
  • python字典中的5个最大值

    我有一本这样的字典 A a 10 b 843 c 39 我想获取这个字典的 5 个最大值并用它存储一个新的字典 为了获得最大值 我做了 max A iteritems key operator itemgetter 1 0 也许这是一件容易
  • 有没有办法强制 conda install 安装软件包及其依赖项而不是给出错误

    我有一个正在安装软件包的 miniconda 环境 我想安装一个软件包 并且我知道可能会存在一些冲突 但是要解决这些冲突 要么需要安装缺少的软件包 要么需要降级 升级另一个软件包 并且它已成为一个尝试降级 升级和安装软件包的漫长兔子洞 有没
  • SSR 如何与 PWA 结合

    如何使用 PWA 渐进式 Web 应用程序 进行 SSR 服务器端渲染 据我了解 SSR SSR 运行时将加载页面并运行必要的脚本以将数据加载到页面上 然后返回渲染后的html 这对于不会运行 javascript 的网络爬虫和无脚本的浏览
  • 使用字符串访问属性

    给定一个与对象字段同名的字符串 如何获取对象字段的引用 例如 假设我向 GetFieldByStr 方法传入一个名为 field1 的字符串 并且该对象具有字段名称 field1 那么如何获取对 field1 对象的引用 我假设以某种方式使
  • 使用 Ratchet\Push.js 加载页面后执行自定义脚本

    所以在 GitHub 文档上棘轮2 0 2 https github com twbs ratchet我发现了以下说法 包含 JavaScript 的脚本标签将不会在以下页面上执行 加载了push js 如果您想将事件处理程序附加到 其他页
  • 负整数除法令人惊讶的结果

    在我的应用程序中 我遇到了以下情况并对结果感到惊讶 8 7 2 均为整数 这是什么意思 对于实际值 即8 0 7 0 结果大致为 1 143 使用整数除法的结果将向下舍入到更负的值 2 这也称为 楼层划分 这就是为什么你会得到一些令人困惑的
  • 如何获取字符串中单词的所有组合

    我想获得字符串中所有相邻单词的组合 例如 细绳get all combinations我想要得到 get all combinations all combinations get all all get combinations 我写下一
  • SQL 多个 where 子句

    我找不到像这样使用多个 where 子句是否有效 我使用 JPA MySQL 我需要多个 where 子句 其中一个在这里是 not 还是我遗漏了一些东西 select d from T DEBIT d where d status PEN
  • 更改 UIView 的边界并使 UICollisionBehavior 对其做出反应

    是否可以更改 UIView 的边界 使用 UIAttachmentBehaviors 附加到其他一些 UIView 并使 UICollisionBehavior 与 UIAttachmentBehavior 相结合对其做出响应 如此处的示例
  • 在 Go 中解组通用 json [重复]

    这个问题在这里已经有答案了 我是一名新的 Go 程序员 来自 Java 我想重现一种易于在 Java 中使用的通用方法 我想创建一些函数 允许我对 JSON 字符串执行 Unmarshal 以避免代码重复 这是我当前不起作用的代码 type
  • java.sql.SQLException:连接已关闭

    我们正在得到java sql SQLException 连接已关闭 执行事务时间歇性出现异常 我们使用的是 tomcat 7 X 下面是配置
  • .Net C# RESTSharp 10 分钟超时

    我已将浏览器控件嵌入到 Net 表单中 并将其编译为窗口的可执行文件 浏览器控件正在显示我们的 HTML5 图像查看器 该应用程序打开套接字 以便它可以侦听来自各个服务器的 推送 请求 这允许将图像推送到单个用户的桌面 当传入图像推送请求时