我需要从.net核心web api调用旧的asmx Web服务(我无法控制)
有可能吗?
感谢
答案 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服务将能够被添加到您的项目中。