如何在 SQL Server 2016 中创建 SOAP 端点?

Dan*_*bdi 5 sql-server

当我尝试在 SQL Server 2016 中创建 SOAP 端点时:

CREATE ENDPOINT Weather_CurConditions
STATE = Started
AS HTTP
(
    PATH = '/CurrentConditions',
    AUTHENTICATION = (INTEGRATED),
    PORTS = (CLEAR), CLEAR_PORT = 8080,
    SITE = '*'
)
FOR SOAP
(
    WEBMETHOD 'GetWeather'(NAME = 'Weather.dbo.usp_GetWeather'),
    WSDL = DEFAULT,
    DATABASE = 'Weather',
    NAMESPACE = DEFAULT
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

消息 7878,级别 16,状态 1,第 1 行
此版本的 SQL Server 不支持此“CREATE ENDPOINT”语句。

这是输出SELECT @@VERSION

Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64)
  2016 年 4 月 29 日 23:23:58
  版权所有 (c) Microsoft Corporation
  Enterprise Edition(64 位),Windows 8.1 Enterprise 6.3(内部版本 9600 :)

我能做什么 ?

Aar*_*and 6

您不能再使用 SOAP/HTTP 端点。这不是 SQL Server 2016 的问题,因为这在 2014 年也行不通。从文档中CREATE ENDPOINT

注意: SQL Server 2012 中删除了本机 XML Web 服务(SOAP/HTTP 端点)。

它已被弃用至少 8 年(这是我能找到的当前文档的最旧版本):

如果您查看该文档,您将看到“带有 FOR SOAP 选项的 CREATE ENDPOINT 或 ALTER ENDPOINT 语句”当时已被弃用。他们的替代建议是“改用 Windows Communications Foundation (WCF) 或 ASP.NET”。

可以说,可能会有更好的错误消息,如下所示(强调我的):


版本的 SQL Server不再支持消息 7877、级别 16、状态 1 SOAP/HTTP 终结点。

但您的解决方法保持不变:

  1. 继续使用旧版本的 SQL Server。
  2. 查找其他不需要此类信息的信息来源。
  3. 正如文档所建议的那样,不要试图让 SQL Server 执行这项工作(它不是 Web 浏览器)——例如,创建一个应用程序或服务来将数据存储在 SQL Server 中。