我需要从.net核心web api调用旧的asmx web服务(我无法控制)。
有可能吗?
谢谢
发布于 2017-11-15 04:24:35
我能够做到的方法是完全更新Visual Studio2017,然后从这里获得最新的WCF连接服务扩展:https://marketplace.visualstudio.com/items?itemName=WCFCORETEAM.VisualStudioWCFConnectedService
这样做之后,我就可以像这样添加和调用SOAP服务了。
右键单击连接服务文件夹(应该显示在项目的正下方),然后选择添加连接服务。然后选择“添加WCF web服务”。将asmx url放入URI字段,设置名称空间,然后单击Finish。现在,您将拥有引用集。
下面是我的代码的一个示例。
如果您没有authorization头部,您可以忽略该部分:
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;发布于 2020-01-23 00:23:33
公认的答案是100%正确的,但是当我尝试使用VS连接的服务添加ASMX Web服务时,有一个问题,我遇到了,但最初对我来说并不明显。
在我的例子中,我试图连接的web服务禁用了Web.config中的WSDL。我必须删除或注释掉Web.config中的以下内容,才能成功导入元数据和代码搭建。
<webServices>
<protocols>
<!-- <remove name="Documentation" /> -->
</protocols>
</webServices>一旦像上面的例子那样移除或注释掉<remove name="Documentation" />,就可以将它添加到您的项目中。
https://stackoverflow.com/questions/46918505
复制相似问题