繁体   English   中英

如何从.net核心中的ASYNC SOAP Web服务获取响应?

[英]How i get response from ASYNC SOAP webservice in .net core?

首先,.net核心中的im newbie和.net中的soap webserive。 我们正在研究一个有关从基于SOAP的webserive(来自WSDL)中请求数据的项目。 我对此表示歉意,也许这个问题看起来如此简单或奇怪。

在这里,我画我们的系统: 在此处输入图片说明

该系统的工作方式如下:第一个客户端从我们的Web API请求保存请求,然后为SOAP Web服务添加一些身份验证信息并从SOAP Web服务进行查询。 比SOAP Web服务返回一个唯一的queryNumber以便以后查询结果。 问题是我无法从响应获取queryNumber。

我使用WCF Web服务提供程序通过WSDL地址添加了引用,并且所有方法都在引用中实现: saveRequest (参数,用于身份验证的用户ID,用于身份验证的pass), saveResponse (queryNumber), saveAsync (与saveRequest相同)。 saveAsync方法已调用saveRequest。

saveAsync的用法似乎在参考中像这样:

ServiceClient.saveResponse = await ServiceClient.saveAsync(params);

所以我写了这段代码:

static async Task<ServiceClient.saveResponse> _run (params){
   Service.ServiceClient = new Service.ServiceClient();
   ServiceClient.saveResponse getResult= await ServiceClient.saveAsync(params);
   return getResult;
}

而且比我在主要或其他地方调用此异步方法。 但是,当我调用该异步方法并尝试获取queryNumber时,出现了内部服务器错误(500)。

实际上,我使用FormBody(带有XML)发送参数。

我使用SOAPUI尝试了相同的任务,并获得了结果XML,没有任何错误。 我也跟踪了代码,发现代码卡在其中了:

ServiceClient.saveResponse getResult= await ServiceClient.saveAsync(params);

我不确定我是否正确使用了代码块。 您是否看到有关代码的任何错误提示? 还是滥用? 也许我错误地使用了异步方法,但是saveAsync希望代码块完全像这样。

先感谢您。

编辑1:以HTTPS:// ...开头的第三方SOAP网络。 错误与此有关吗?

我有解决方案。 问题是关于.Net Core 2.0版本或System.ServiceModel.Http版本。 我在代理后面应用了.Net Core 2.0连接到SOAP服务中的步骤,并解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM