gpt4 book ai didi

c# - .NET Core 2.0 soap 客户端调用失败,返回 "WinHttpException: The operation timed out"

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:31 25 4
gpt4 key购买 nike

我有一个在 .Net core 2.0 中开发的简单 soap 客户端,用于使用来自以下 Web 服务的计算器方法: http://www.dneonline.com/calculator.asmx?WSDL该服务作为连接服务导入到 Visual Studio 2017 中,调用服务方法的代码如下所示:

        var binding =  new BasicHttpBinding(BasicHttpSecurityMode.None);
var ep = new EndpointAddress("http://www.dneonline.com/calculator.asmx?WSDL");

Calculator.CalculatorSoapClient client =
new Calculator.CalculatorSoapClient(binding, ep);

client.AddAsync(1, 3).Wait();
Console.WriteLine("Finished successfully");
Console.ReadLine();

现在的问题是,当调用 AddAsync 方法时,此代码在 20 秒后失败,出现异常“WinHttpException:操作超时”。其他相关观察:

  1. 完全相同的代码(包括生成的连接服务)在 VS 2015 和 .NET Framework 中运行良好。
  2. 我们的开发机器位于公司防火墙后面,因此 wirshark 跟踪在两次执行之间看起来不同。在.NET Framework 上成功运行的可以建立连接,而另一个无法连接到代理。
  3. 我看过其他文章讨论如何增加长时间运行或繁重调用的超时值,但这篇文章既不繁重也不是长时间运行的方法。

有没有人遇到任何类似的问题或知道为什么 .NET Core 的行为不同?

更新 1我们在基于云的计算机上测试了该解决方案,它运行良好。因此,看起来是公司防火墙阻止了传出通信。另一方面,在同一台本地计算机上,我们测试了一个简单的 .Net Core 应用程序,该应用程序从网站下载图像并且运行良好。这就是全部,而带有 .NET Framework 的 VS 2015 可以毫无问题地运行相同的代码,调用 Web 服务并获取结果。那么,新的问题可能是为什么 .NET Core 在网络通信上的行为不同?是否有任何新的规则、政策、许可、限制、能力等需要打开/关闭以启用与互联网的通信?

最佳答案

.net Core 2.0 中存在代理配置错误,您可以在此处看到:https://github.com/dotnet/wcf/issues/1592 .

我的项目 (VS 2017/.net Core 2.0) 的解决方案是将其升级到 .net Core 2.1,并将 System.ServiceModel.Http 和其他依赖项更新到最新的稳定版(在我的例子中是 4.5.3)。然后使用 IE/Edge 代理设置。

此问题可能与以下问题重复:Connecting to a SOAP service with .Net Core 2.0 behind a proxy

关于c# - .NET Core 2.0 soap 客户端调用失败,返回 "WinHttpException: The operation timed out",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49982191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com