WebClient.DownloadString 速度慢?

2024-03-02

我正在开发一个使用 ASP.Net 3.5 运行的 Web 应用程序

在应用程序的某个地方,我正在调用外部系统。此调用包括从特定 url 下载字符串:

string targetUrl = BuildMyUrl();
WebClient wc = new WebClient();
string data = wc.DownloadString(targetUrl);

该代码运行良好,响应时间可接受(低于 500 毫秒)。

但是,在特定情况下,此响应时间会超过 15 秒。我可以重现该行为,并且我可以清楚地看到时间很长DownloadString call.

我不明白为什么在我的场景中会发生这种情况.

你会说:“嘿,这是目标系统慢”。但我无法在应用程序之外重现该行为(我构建了一个小型控制台应用程序来隔离错误代码。永远不会遇到任何问题)。

我不知道现在该去哪里了解这个问题。什么会导致简单的下载数据过长?

仅供参考:目标系统是一个身份验证服务。目标网址是这样的:

httpS//mysystem/validate?ticket=XXXYYY

也许 https 协议是问题所在。

在 IIS 下使用 WebClient 类是否可以改变 WebClient 的行为?

[编辑]我尝试过:

  • 显式设置ProxyWebClient 对象的属性为 null
  • 我已用以下代码替换了 DownloadData 调用:

    var req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(targetUrl)); 使用 (var response = (HttpWebResponse)req.GetResponse()) { 使用 (var sr = new StreamReader(response.GetResponseStream())) { 数据= sr.ReadToEnd(); } }

这些测试都没有成功。


尝试使用Fiddler http://www.fiddler2.com/fiddler2/或 Chrome/FF 浏览器内的一些集成网络分析器来查看 HTTPS 请求/响应及其标头。

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

WebClient.DownloadString 速度慢? 的相关文章

随机推荐

  • CSS响应中心部门

    我想将一些有背景图像的 div 居中 该 div 的响应存在问题 因为如果我将宽度设置为 80 高度设置为 80 则背景图像不会位于中心 我尝试了一切 但图片不能只站在中心 如果浏览器更小或更大 这是一个非常大的问题 所以如果你看图片 我想
  • R Shiny:从 Excel 复制单元格并将其粘贴到 Shiny 应用程序中,然后使用它们创建数据表

    我正在开发一个 R Shiny 应用程序 我需要开发以下功能 我需要从 Excel 中复制单元格行 开始时一次一列 然后使用 selectizeInput textInput 或 textAreaInput 将它们粘贴到 Shiny 中 数
  • 将 STL 容器 转换为容器

    我正在寻找一种方法来制定具有以下内容的课程 使用具有最大 常量 的指针的 STL 容器的接口 但它会在内部改变所指向的对象 与非常量模拟相比 没有额外的运行时开销 理想情况下 与非常量版本相比 该解决方案不会编译为额外的代码 因为常量 非常
  • 有条件禁用/重新启用 jQuery 单击事件

    我在禁用和重新启用链接上的点击事件时遇到问题 设置为一行 4 列 每列包含一个链接和隐藏内容框 单击链接时 它会展开该行并显示特定于该列的内容框 单击链接并展开行后 所有其他链接都会淡出 然后 您可以重新单击打开的链接以关闭该行并取消淡入淡
  • 如何使用 NDK 17 为 64 位 Android 构建 OpenSSL 1.1.1

    无法为 64 位 Android 构建 OpenSSL 以下是我已采取的步骤 下载了setenv android sh from https wiki openssl org images 7 70 Setenv android sh ht
  • 使用 lubridate 进行矢量化时区转换

    我有一个数据框 其中包含一列日期时间字符串 library tidyverse library lubridate testdf data frame mytz c Australia Sydney Australia Adelaide A
  • 从文本文件中读取并将其加载到 matlab 中的矩阵中[重复]

    这个问题在这里已经有答案了 我有一个名为坐标 txt 的文本文件 格式如下 0 0 0 0 95 0 32 0 02 1 02 0 26 0 96 0 73 0 6 0 52 0 77 0 6 0 71 0 28 0 0 95 0 14 0
  • N个矩形的并集周长

    我想知道解决这个问题的有效方法 给定N个矩形 并给出左上角和右下角 请求N个矩形的并集周长 我只有O N 2 算法太慢 所以请寻找更高效的算法 您可以假设坐标值为正整数且小于 100000 EDIT For example in this
  • simpleXML 根据属性获取节点子节点[重复]

    这个问题在这里已经有答案了 我正在尝试解析我通过其属性之一引用的节点的值 但我不确定语法 XML
  • Netty如何使用线程池?

    您能解释一下 Netty 如何使用线程池来工作吗 我是否理解正确 有两种线程池 老板和工人 Boss 用来做 I O worker 用来调用用户回调 messageReceived 来处理数据 这是来自 NioServerSocketCha
  • 使用什么工具来解析Python中的编程语言?

    您可以推荐哪种 Python 工具来解析编程语言 它应该允许源代码中语言语法的可读表示 并且应该能够扩展到复杂的语言 语法像 Python 本身一样复杂的语言 当我搜索时 我主要找到 pyparsing 我将对其进行评估 但当然我对其他替代
  • 用于单元/集成测试的嵌入式动物园管理员

    是否有嵌入式动物园管理员以便我们可以在单元测试中使用它 它可以与测试一起发货并开箱即用 也许我们可以模拟一些服务并注册到嵌入式动物园管理员 The Curator https github com Netflix curator wiki框
  • Mac 版 Github:缺少拉取请求按钮

    周六 我在 Mac 上安装了 Github Desktop 并尝试了 Github Workflow 创建一个分支 提交更改并执行拉取请求 一切顺利 今天我在工作中安装了 Mac 版 Github 但找不到 Pull Request 按钮
  • Typescript 在 vs 2015 ctp 6 中禁用保存时编译

    我需要知道如何禁用打字稿文件保存时编译 默认情况下启用 Typescript 编译 您可以执行下一步来禁用它 选择并单击 卸载项目 菜单项 选择已卸载的项目并单击 编辑 kproj 将新的 PropertyGroup 节点添加到项目根节点
  • 捆绑链接的 JavaScript 文件

    我正在使用 Visual Studio 2012 和 MVC4 我已将链接文件 来自另一个项目 添加到我的 MVC4 应用程序中 以下是该文件的属性 构建操作 内容 复制到输出目录 不复制 这是我的捆绑包的示例 bundles Add ne
  • WPF DataGrid AlternatingRowBackground 和 RowStyle 优先级

    我该如何做我的RowStyle后申请AlternatingRowBackground 我想要物品 有IsOrange as true具有Orange背景 无论交替的行背景如何 目前情况并非如此 XAML
  • 当选择文本时,如何用我自己的视图替换 UIMenuController?

    当选择文本时 默认情况下会弹出一个 UIMenuController 其中包含剪切 复制 粘贴等功能 我想用我自己的自定义视图替换它 外观相似 但高两倍 以便我可以有两行按钮 自定义视图 我怎样才能做到这一点 我知道没有简单的方法 我预计即
  • Mongodb动态like运算符

    在 mongodb 中相当于 sql like 运算符是 db users find shows m 使用 nodejs javascript 我想根据 url 参数动态更改字母 我努力了 letter req params letter
  • RxJava Observable.fromEmitter 奇怪的背压行为

    我一直在利用Observable fromEmitter 作为一个绝佳的替代品Observable create 我最近遇到了一些奇怪的行为 但我不太明白为什么会出现这种情况 我真的很感谢对背压和调度程序有一定了解的人来看看这个 publi
  • WebClient.DownloadString 速度慢?

    我正在开发一个使用 ASP Net 3 5 运行的 Web 应用程序 在应用程序的某个地方 我正在调用外部系统 此调用包括从特定 url 下载字符串 string targetUrl BuildMyUrl WebClient wc new