简单的HTTP GET导致“现有连接已被远程主机强行关闭”,但仅在带有ClickOnce的WPF中?

问题描述 投票:1回答:1
我正在尝试为一种非常奇怪的行为找到一种解释。

代码很简单:

// A simple HTTP GET call with RestSharp. var url = "https://sandbox.tradier.com/v1/markets/quotes?symbols=MSFT"; var bearerToken = "thisCouldBeYourToken"; var client = new RestClient(url); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", $"Bearer {bearerToken}"); var response = await client.ExecuteTaskAsync<MyClass>(request)

该代码是与ClickOnce一起部署的.NET 4.7.2 WPF应用程序的一部分。

几天前,没有任何更改,此呼叫突然返回An existing connection was forcibly closed by the remote host。但是仅适用于此特定的URL。我对其他URL使用完全相同的代码,也没有任何问题。

真的很奇怪,当我调试应用程序时没有发生异常,而是收到了所需的响应。即使我在没有调试的情况下启动应用程序,也没有错误。我重新部署了该应用程序,但仍然在那里发生了错误。因此由于某种原因,呼叫在部署后会以不同的方式发出!顺便说一句:部署的版本也在我的计算机上运行,​​而不是在其他地方。

经过一些密集的搜索后,我遇到了this post,它建议将SecurityProtocol显式设置为TLS 1.2(默认值:SystemDefault):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

它像一种魅力。现在,已部署的版本也正在运行,没有任何问题。因此,我想该网址现在需要TLS 1.2。但是,为什么该应用程序甚至在直接启动之前就运行,而在通过ClickOnce部署时却遇到了问题?

我正在尝试为一种非常奇怪的行为找到一种解释。代码很简单://使用RestSharp进行简单的HTTP GET调用。 var url =“ https://sandbox.tradier.com/v1/markets/quotes?...

c# wpf clickonce restsharp
1个回答
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.