从 Web 服务器上的文本文件中读取文本 [重复]

Posted

技术标签:

【中文标题】从 Web 服务器上的文本文件中读取文本 [重复]【英文标题】:Reading the text from a text file on a web server [duplicate] 【发布时间】:2018-11-27 19:50:42 【问题描述】:

我曾经能够将位于我们公共 Web 服务器上的文本文件读取到字符串变量中。 Web 服务器上发生了一些变化,现在我的功能不再起作用了。文本文件仍然存在,可以使用网络浏览器打开,但我无法从我的 VB.net 应用程序中读取它

这里是一个示例文本文件的链接:https://www.mgfx.co.za/license.txt

        Dim http As New Net.Http.HttpClient        
    Dim strWebString As String = Await http.GetStringAsync(New Uri("https://www.mgfx.co.za/license.txt"))

这不再起作用,并引发有关身份验证的错误。 “IOException:身份验证失败,因为远程方已关闭传输流。”

我只能想象我们的托管服务提供商已经实施了某种新的安全措施,现在阻止来自我的应用程序的调用。

任何人都可以在这里提供帮助或知道为什么会这样吗?

【问题讨论】:

可能想要检查您使用的是 TLS 1.2,而不是默认的 1.1...现在很多 Web 服务器都需要这样做,而我一直在处理程序错误,因为这一年 第一次发送请求前添加这一行:ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls. 这真的很奇怪,但代码对我来说效果很好:Using client As New HttpClient : Dim x = Await client.GetStringAsync(New Uri("https://www.mgfx.co.za/license.txt")) : End Using 谢谢大家! TLS 1.2 设置似乎已经解决了。 @JohnyL 也许,您的app.config 文件中有这样的内容:<appSettings><add key="SecurityProtocol" value="3072" /></appSettings> 或这个:<add key="SecurityProtocol" value="Tls12" />。还有一个注册表值可以将此协议设置为默认值。有些应用程序,它发生在你背后做这件事。一些开发者认为一切正常,然后他们部署并... 【参考方案1】:

将此添加到我的代码中解决了这个问题。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls

【讨论】:

以上是关于从 Web 服务器上的文本文件中读取文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Struts 2 应用程序中读取文本文件 [重复]

C#从文本文件中读取路径说路径不存在[重复]

从Java中的图像文件中读取文本[重复]

如何从文本文件中读取选定的列

在 Android 上下载文本文件 [重复]

读取战争档案中的文本文件[重复]