从.net core api2调用asmx服务

时间:2017-10-24 19:25:31

标签: asp.net-web-api .net-core

我需要从.net核心web api调用旧的asmx Web服务(我无法控制)

有可能吗?

感谢

2 个答案:

答案 0 :(得分:2)

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

在我这样做之后,我能够像这样添加和调用SOAP服务 右键单击已连接服务文件夹(应显示在项目下方),然后选择添加已连接服务。然后选择“添加WCF Web服务”。将asmx url放入URI字段,设置名称空间,然后单击Finish。您现在将拥有参考集 我的代码所做的一个例子......
如果您没有授权标头,则可以忽略该部分:

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;

答案 1 :(得分:0)

可接受的答案是100%正确,但是尝试添加带有我遇到的VS WCF Connected Services的ASMX Web服务时遇到了一个麻烦,但是最初对我而言并不明显。

在我的情况下,我尝试连接的Web服务已禁用Web.config中的WSDL。我必须在Web.config中删除或注释掉以下内容,以允许元数据导入和代码脚手架成功。

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

像上面的示例一样,一旦<remove name="Documentation" />被删除或注释掉,ASMX服务将能够被添加到您的项目中。