从 .net core api2 调用 asmx 服务



>我需要从.net core Web API调用旧的asmx Web服务(我无法控制)

可能吗?

谢谢

我能够做到这一点的方法是完全更新Visual Studio 2017,然后从这里获取最新的WCF连接服务扩展:https://marketplace.visualstudio.com/items?itemName=WCFCORETEAM.VisualStudioWCFConnectedService

完成此操作后,我能够像这样添加和调用 SOAP 服务。
右键单击"连接的服务"文件夹(应显示在项目正下方),然后选择"添加连接的服务"。然后选择"添加 WCF Web 服务"。将您的 asmx url 放入 URI 字段中,设置命名空间,然后单击完成。现在,您将拥有引用集。
我的代码的作用示例...
如果您没有授权标头,则可以忽略该部分:

MySoapClient.EndpointConfiguration endpoint = new MySoapClient.EndpointConfiguration();  
MySoapClient myService = new MySoapClient(endpoint, myURL);              
AuthorizationSoapHeader MyAuthHeader = new AuthorizationSoapHeader();
MyAuthHeader.AppName = FDSServiceAppName;
MyAuthHeader.AppID = Guid.Parse(MyAppID); 
Entry[] entries = MyService.GetUsers().Result;

接受的答案是 100% 正确的,但是在尝试添加具有 VS WCF 连接服务的 ASMX Web 服务时遇到了一个问题,但最初对我来说并不明显。

就我而言,我尝试连接的 Web 服务禁用了 Web.config 中的 WSDL。 我不得不删除或注释掉 Web.config 中的以下内容,以允许导入元数据并成功构建代码基架。

<webServices>
  <protocols>
    <!-- <remove name="Documentation" /> -->
  </protocols>
</webServices>

如上例所示删除或注释掉<remove name="Documentation" />后,ASMX 服务将能够添加到您的项目中。

最新更新