使用Create EndPoint创建本机XML Web Service
来源:互联网 发布:大众网络报 编辑:程序博客网 时间:2024/06/03 14:58
在.Net 平台下的应用中,应用对内(外)的访问往往通过Web Service来实现,当然现在也可以使用WCF。大多数情况下,Web Service都是宿主在IIS上的,但是从SQL Server 2005起,我们可以在SQL Server 2005中发布本机XML Web Service,这样我们可以像访问宿主在IIS上Web Service一样来访问SQL Server的XML Web Service。
注:在SQL Server 2008/R2中,已经不推荐使用本机XML Web Service,将会被WCF或ASP.Net所取代,在本文中只探讨如何定义和使用本机XML Web Service。参见:
http://msdn.microsoft.com/zh-cn/library/cc280436.aspx
虽然在SQL Server的未来版本中,本机XML Web Service将不存在,从技术爱好的角度来看,我们还是有必要了解一下这项技术,因为使用SQL Server本机XML Web Service可以快速方便的把自定义函数或者存储过程转化为Web服务接口暴露出来。
要在SQL Server中实现本机XML Web Service,需要3个步骤:
1. 创建存储过程(已访问存储过程的Web Service方法为例), Create Procedure
2. 保留命名空间, sp_reserve_http_namespace
3. 创建访问端点,Create Endpoint
下面我们以微软的实例数据库AdventureWorks为例,把访问AddressType表的存储过程转化成Web Service,下面来详细说明。
1.创建存储过程
CREATEPROCEDURE dbo.PersonAddressTypeProc
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT [AddressTypeID]
,[Name]
,[rowguid]
,[ModifiedDate]
FROM [AdventureWorks].[Person].[AddressType]
END
GO
2.保留命名空间
sp_reserve_http_namespaceN'http://localhost:80/AddressType'
这里我们将要创建的命名空间是:http://localhost/AddressType,如果没有执行sp_reserve_http_namespace,而去直接创建访问端点,那么会提示命名空间没有被创建或不存在。有关sp_reserve_http_namespace的更多内容可以访问:
http://msdn.microsoft.com/en-us/library/ms190614.aspx
4. 创建访问端点
5. CreateEndpoint GetAddressType
6. State= Started
7. ASHttp
8. (
9. path='/AddressType',
10.Authentication =(INTEGRATED),
11.ports =(CLEAR),
12.site ='localhost'
13.)
14.ForSOAP
15.(
16.WebMetHod 'AddressTypeList'(Name='AdventureWorks.dbo.PersonAddressTypeProc'),
17.Batches = disabled,
18.wsdl = default,
19.database ='AdventureWorks',
20.NAMESPACE = 'http://localhost:80/AddressType'
21.)
22. GO
有关CreateEndpoint的参数,感兴趣的读者可以参考:
http://msdn.microsoft.com/zh-cn/library/ms181591.aspx
在本文中,对语句及其参数并不做详细解释,有关详细解释大家可以参考《SQL SERVER 2005本机Web服务支持(实战篇)》,这里就不赘述了。下面给出完整代码:
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SETANSI_NULLS ON
GO
SETQUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATEPROCEDURE dbo.PersonAddressTypeProc
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT [AddressTypeID]
,[Name]
,[rowguid]
,[ModifiedDate]
FROM [AdventureWorks].[Person].[AddressType]
END
GO
sp_reserve_http_namespaceN'http://localhost:80/AddressType'
CreateEndpoint GetAddressType
State = Started
ASHttp
(
path='/AddressType',
Authentication =(INTEGRATED),
ports =(CLEAR),
site ='localhost'
)
ForSOAP
(
WebMetHod 'AddressTypeList'(Name='AdventureWorks.dbo.PersonAddressTypeProc'),
Batches = disabled,
wsdl = default,
database ='AdventureWorks',
NAMESPACE = 'http://localhost:80/AddressType'
)
GO
- 使用Create EndPoint创建本机XML Web Service
- 了解和使用keystone(六)创建service和endpoint
- Create an OData v4 Endpoint Using ASP.NET Web API 2.2(使用ASP.NET Web API 2.2创建OData v4端点)
- keystone创建service entity和API endpoint
- 使用CXF创建WEB SERVICE
- VS2010 -- Create Web Service
- web service 只能在本机调试
- 如何使用 Visual Studio .NET 和 Office xp 创建和部署 XML Web service
- 利用 FrontPage 来使用 XML Web Service
- .NET Framework中使用XML Web Service
- Create Siebel Inbound Web Service
- Dynamic Web service invocation from a WSDL endpoint
- 使用Apache CXF创建Web Service
- 使用Apache CXF创建简单Web Service
- 使用Axis创建Web Service服务
- 使用Axis创建Web Service服务
- 使用JAX-RS创建RESTful Web Service
- 使用Axis创建Web Service服务
- 浅析远程过程调用 RPC
- Ubuntu操作系统安装使用教程
- java volatile
- 消息与消息队列
- vim个人配置文件
- 使用Create EndPoint创建本机XML Web Service
- 关于使用Arrays.copyOf()方法
- 求一个整数包含1的个数的代码
- MyTDMA 数值分析P183
- WMI Provider for Server Events
- DB2 V9.7 Workgroup 必须打上FixPack 3a才能支持64G内存
- 关于消息与消息队列
- 想要超越巅峰、那么你就谈恋爱去吧!!!
- linux命令技巧