Visual Studio 2019 中的 Add Web Reference 功能去哪了?

24

我看到可以“添加服务引用”,但我正在尝试“添加Web引用”,因为我要遵循一些示例代码,而我找不到那个选项...


Web 引用已被服务引用所取代。特别是针对 dotnet core 或 5,不要使用旧的 Web 引用。生成的客户端无法很好地执行异步操作,也无法完全理解泛型等内容。即使是服务引用现在也被认为是过时的了。Web API REST 服务应该成为您新的外部可见客户端的首选,而 protobuf 则适用于更高性能的内部 API。 - jessehouwing
3个回答

30

在那个窗口中点击“高级...”,然后在新窗口中点击“添加Web引用...”。他们将其隐藏,因为它是旧技术,但仍在使用中。


2
这似乎与VS2019中的UI不匹配。例如,如果我选择“文件/新建项目”,选择“ASP.NET Core Web应用程序”,选择名称和位置,然后选择.NET Core、ASP.NET Core 3.1和Web应用程序,在解决方案资源管理器中,如果我右键单击输入的名称并选择“添加”,我可以选择“添加引用”或“添加服务引用”,但在任何页面上都没有“高级”按钮。 - SomeoneElse
这个问题涉及到.NET Framework项目(WinForms,WPF,Console)。或者它可能是关于那个的。楼主从未回复过。 - Dialecticus
2
@SomeoneElse 是的,在 .Net Core 项目中没有这个选项。如果你改为以 .Net Framework 为目标,就可以实现它。 - Benjamin Noffsinger

3

经过进一步调查,当前的Microsoft故事似乎在https://learn.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide上。如果按照该文档说明,可以将WCF项目与现有的SOAP Web服务关联起来,并设置至少一些引用。尽管如此,它还没有完全实现(请参见此处问题),而且绝不能作为以前功能的替代品。

导入警告的Web服务时,会在发行说明上打开一个Web浏览器——从那里的某些链接可能会有所帮助。


3

针对.NET框架用户的一个潜在解决方法:

我刚刚发现(至少在VS2019中),我只能将WCF服务引用添加到目标为.NET 5.0的项目中,而不能添加到早期版本的框架中。例如,当我们当前受某些旧组件的限制时,如果目标为4.6.2,则只会看到Azure、SQL和其他连接服务类型。但是,在将测试项目切换到5.0后,我终于得到了下面这个选项:

VS-2019-ConnectedServiceOptions

现在,它不包含我以前使用的高级/添加Web参考屏幕,但是这个WCF向导可以使用以前仅适用于“Web Reference”的端点,并且我现在已经有了我的参考。

添加后,我还可以将项目恢复为.NET 4.6.2。


不错的工作流程,微软 - B H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接