sql2005建webservice及在vs2005中的应用

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下载

你可能感兴趣的:(webservice)