错误$ Meta-Windows应用程序连接到ASP.NET Web服务SOAP / WSDL连接

问题描述 投票:0回答:1

我们将Web Service .asmx应用程序移至另一台服务器。因此,网址没有任何变化。我们可以通过浏览器访问新的Web服务和WSDL,也可以通过这种方式调用。我们也成功删除了新Web参考并将其添加到项目中。

问题是我们的Windows桌面应用程序使用新的Web参考收到以下错误。

错误:基础连接已关闭:发送中发生意外错误

IIS日志具有状态为500的“ $ META错误”

2020-04-25 00:10:16 W3SVC4 GET /MyWebService.asmx/$metadata-443-10.6.0.10 HTTP / 1.1 Mozilla / 4.0 +(compatible; + MSIE + 6.0; + MS + Web + Services + Client + Protocol + 4.0.30319.42000)-api.mydomain.com 500 0 0 590 222 15

我们更新了框架,使应用程序可以使用最新的.net框架。不知道还有什么尝试。我们还尝试将?WSDL添加到在线帖子中建议的Web参考末尾。没运气。

[任何人都遇到过,我用完了Google的搜索。

.net winforms web-services wsdl asmx
1个回答
0
投票

此问题在2种情况下得到了解决,但是以不同的方式。

问题根源。 .net客户端使用(Web方法)和/或webserver.asmx连接到END POINT Web服务应用程序时。如果您的防火墙,服务器或Azure应用程序网关限制了SSL样式的TLS 1.2或更高版本,即使.net framework 4.0和更高版本假定在您将其用作目标框架时默认情况下也使用TLS 1.2,但我们的情况并非如此。 NET应用程序和始终使用.NET构建的桌面Windows应用程序。

[要解决此问题,您必须在app.config,web.config中专门声明它,或者在将TLS12设置为所创建的Web客户端对象的代码中编写代码。在一种情况下,仅在app.config中指定还不够,开发人员必须在调用Web服务之前在创建的每个对象Web客户端上对其进行声明。

如果您要在Web应用程序中使用的设置:

您可以添加到web.config或global.asa.cs(C#)Application_Start()中。

在Windows桌面应用程序中:

开发人员必须在您的方法中创建Web客户端之前每次声明。全局设置无效。

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

这里有一些链接可以帮助您。.希望此链接对其他人有所帮助,因为此连接已关闭,错误难以调试。

ServicePointManager.SecurityProtocol

© www.soinside.com 2019 - 2024. All rights reserved.