sql2005建webservice及在vs2005中的应用
时间:2011-05-20 来源:itcfj
sql2005建webservice及在vs2005中的应用
Sql2005可以将存储过程或T-SQL以web服务的方式发布到服务器上,而无须配置IIS.通过HTTP API 把HTTP端点暴露给用户,在winXP sp2和win2003上被支持.
在网上查了下简明用法教程,可网上全部又简单的介绍几乎没有,我在进行测试时遇到如访问端点权限问题,将sql2005创建的web服务引入到项目中等没有详细说明,至使我花了很长时间在MSDN上查文档.为了方便以后想对ENDPOINT进行测试实践的人少走弯路,我写了这篇还算是全面的”sql2005建webservice及在vs2005中的应用”的入门文档.
现在开始.
1. 基本语法 大家若安装了sql2005的帮助文档,在搜索中输入“ENDPOINT”,再点击”CREATE ENDPOINT”查看其基本语法,本文不在概述其语法内容.
2. 创建测试数据库
本想用northwind数据库为测试数据库的,一想新建一个也很快,就没用在本地安装northwind.
下面是创建的数据库及表的sql语句及填充语句.特简单
CREATE TABLE [dbo].[test](
[tid] [int] NOT NULL,
[tname] [varchar](max) NOT NULL
) ON [PRIMARY]
INSERT INTO dbo.test (
tid,
tname
) VALUES (
1,'version1' )
INSERT INTO dbo.test (
tid,
tname
) VALUES (
2,'zhangsan' )
3. 创建HTTP端点
CREATE ENDPOINT TestPoint2
STATE = STARTED
AS HTTP (
AUTHENTICATION = (INTEGRATED),
PATH = '/sql',
PORTS = (CLEAR),
site='192.168.1.12'
)
FOR SOAP(
WEBMETHOD 'GetTestData'(NAME='test.dbo.GetTestData',SCHEMA=STANDARD ),
WEBMETHOD 'GetTestDataByID'(NAME='test.dbo.GetTestDataByID'),
wsdl=DEFAULT,
SCHEMA=STANDARD,
DATABASE='test',
namespace='http://tempUri.org/'
4 . 新建window用户,并进行配置
(1)打开桌面 > 我的电脑 > 右击 > 管理 > 用户管理 > 增加 一个名为 testPoint 的windows用户,密码为 test123
(2) 打开 SQL server Management studio > 安全性 > 登陆名 > 新建
选中windows身份验证 > 搜索 > 定位到 testPoint 这个windows帐户
安全对象选项> 增加> 特定类型的所有对象> 钩选端点> 选中你要操作的 端点 > 钩选下方 connect 权限
5. 在vs2005项目中的应用
Sql2005创建的web服务OK了,数据库也有了,window用户也建好了,现在就开始创建vs2005的项目了,我以web项目为例.
打开”vs2005”,新建个网站,首先先将web服务引用到网站中
在页面cs文件中的Page_Load方法加入以下代码
protected void Page_Load(object sender, EventArgs e)
{
Test.TestPoint2 t = new Test.TestPoint2();
CredentialCache a = new CredentialCache();
a.Add(new Uri("http://192.168.1.12"), "NTLM", new NetworkCredential("testPoint ", "test123"));
//t.Credentials = a.GetCredential(new Uri("http://192.168.1.12"), "NTLM");
t.Credentials = System.Net.CredentialCache.DefaultCredentials;
object[] obj= t.GetTestDataByID(1);
this.GridView1.DataSource =(DataSet) obj[0];
this.GridView1.DataBind();
}
用户名及密码可以放在配置文件中,这样可以方便修改,本例略.
运行之后的页面
6.结束语
本文主要是简单的介绍如何用sql2005web服务及在vs2005中的使用,若真的运用此方法到项目中,考虑的东西不只这些,如安全,性能等方面,具体的大家自己去看文档了,OK,今天就到这了.
Demo下载