当我尝试在 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 :)
我能做什么 ?
您不能再使用 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 终结点。
但您的解决方法保持不变: