C#中调用Web ServiceWord格式.docx

上传人:b****0 文档编号:13213445 上传时间:2022-10-08 格式:DOCX 页数:25 大小:676.36KB
下载 相关 举报
C#中调用Web ServiceWord格式.docx_第1页
第1页 / 共25页
C#中调用Web ServiceWord格式.docx_第2页
第2页 / 共25页
C#中调用Web ServiceWord格式.docx_第3页
第3页 / 共25页
C#中调用Web ServiceWord格式.docx_第4页
第4页 / 共25页
C#中调用Web ServiceWord格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C#中调用Web ServiceWord格式.docx

《C#中调用Web ServiceWord格式.docx》由会员分享,可在线阅读,更多相关《C#中调用Web ServiceWord格式.docx(25页珍藏版)》请在冰豆网上搜索。

C#中调用Web ServiceWord格式.docx

"

http:

//tempuri.org/"

)]

[WebServiceBinding(ConformsTo 

WsiProfiles.BasicProfile1_1)]

public 

class 

Service 

:

 

System.Web.Services.WebService

{

() 

//如果使用设计的组件,请取消注释以下行 

//InitializeComponent();

}

[WebMethod(Description="

最简单的方法"

string 

HelloWorld() 

return 

Hello 

World"

;

你可以在这里修改自己的命名空间,加入自己的方法,但本文只是为了说明如何创建和发布,所以对Service.cs不做任何更改。

若要修改,则写方法,注意前面要加上[WebMethod]。

可以按F5运行此页面,同时也可以设置断点进行调试(前提是要将web.config中<

compilationdebug="

true"

>

设为true,而实际项目运行中,则改为false)

2.生成网站

很简单,“生成”-“生成网站”或直接Shift+F6

3.发布网站

也是简单,“生成”-“发布网站”,这里会弹出一个对话框,什么也不需要修改,记下发布的目录。

比如:

D:

\我的文档\VisualStudio2005\Projects\WebSite1\PrecompiledWeb\WebSite1,我们需要目录下的文件。

4.配置IIS

在你的WEB目录下一个文件夹,比如webservice,并将第3步发布目录中的所有文件和目录拷贝到这个目录中,打开IIS,找到你的站点,在这个webservice目录上点右键,选择属性,在弹出对话框的“目录”选择项卡中点击“创建”按钮,然后确定即可。

到这时,已经大功告成,你可以通过访问http:

//域名/webservice/Service.asmx来验证。

页面会出现如下图所示内容:

注意:

除了需要在IIS中对服务目录创建程序外,还要注意防火墙或杀毒软件的设置,我在首次访问service.asmx文件时,杀毒软件报告w3wp.exe在系统文件夹中生成asp_code.dll等,应该允许其他创建,否则会无法访问。

通过这样简单的方法,你可以轻松建立自己的WEB服务,在同一站点还可以有多个WEB服务

其实从上面的第3步开始可以简化:

“生成”-“发布网站”,这里会弹出一个对话框,更改目录位置,选择左边的本地IIS,右边选择默认网站,选择某个目录即可,再按确定即可,不需要第四步了。

下面开始在项目中调用此服务:

(调用之前要现在项目中添加服务引用)

第一:

对web项目点击右键,如图一。

第二:

点击添加web引用,如下图二.

第三:

查找可用的webservice,如果是本解决方案内的直接搜索就行,如果是外部的,就输入有效地址然后查询,这里面可以测试webservice,如图三:

第四:

添加引用成功后就会出现WebReferences目录.如图四,然后就是调用了。

这应该就是最基本的添加webservice引用的方法了。

当时我也是按照这样的思路去添加。

发现类库中点击右键并没有出现我熟悉的“添加web引用”,而出现图五效果:

此时我认为可能是升级的原因变成"

添加服务引用"

,接下来的操作和上面操作相同.点击出现图六;

输入webservice地址,测试连接都成功,添加成功后出现图七:

然而调用的时候并不像想像的那么成功,结果可想而之,我添加的WCF服务。

这里错误代码我就不好意思帖了。

知道引用对象错了后,就是让类库来添加webservice,然而点击类库后,右键并没有"

添加web服务"

的选项。

如何让类库支持添加webservice引用成了我最大的难题。

此时我咨询了同事,基本排除程序问题,因为通过网站形式可以正常访问webservice。

园子里的朋友你们在VS08中的类库会添加webservece引用吗?

我搜索了一下午,毫无结果,最好只好再问别的同事,几经周折,我把方法贴出来show一下;

对目标类库点击右键,如图六:

点击“添加服务引用”如图八:

关键是图左下角的“高级”按键。

点击如图九:

注意了,同样是左下角,“添加WEB引用”的按钮终于出现了,点击如图十:

之后的操作就不多说了。

到这里,就最终完成了C#的类库中添加WebService引用的目的。

操作并不复杂,只是实在是想不明白,VS为什么要把添加web引用放的这么隐蔽呢,难道是为了WCF的推广?

而在项目中实际调用时这样写:

SerRef.Servicews=newSerRef.Service();

//SerRef是web引用名。

stringsst=ws.HelloWorld();

//HelloWorld是服务方法。

若是后来重新对服务进行添加了新的服务方法,注意别忘了点击服务别名,右键—》“更新web引用”。

运行项目时若出现类似“权限。

”的错误时,请按照给出的提示(vs2008中会有建议操作的,点下就ok了)更正。

好像在调试过程中不能在调用方法时单步调试。

上面是发布与调用web服务,而WCF服务是类似的(建立是应选择WCF服务,不要选择新建”-“网站”,在对话框中选择“ASP.NETWeb服务”)

在webservice中如何得到客户端IP,

通过代理,获取真实的ip

if(Context.Request.ServerVariables["

HTTP_VIA"

]!

=null)

{

ip=Context.Request.ServerVariables["

HTTP_X_FORWARDED_FOR"

].ToString();

else

REMOTE_ADDR"

C#WinForm利用WebServiceAPI查询数据库并显示到客户端

我们知道C#的WebService 

API的返回值可以是DataSet类型,这就使得我们可以通过WebServiceAPI来查询数据库,这个功能将成为我们许多应用的基础。

下面我们用一个简单的Winform调用的例子来说明这个问题。

首先我们有一个SQLServer2000数据库book在服务器webserviceserver上,book库中有张表bookinfo,包含书名、作者、价格等字段,数据库用户sa,密码123456。

我们利用VS2005创建一个WebService项目并发布出去,这里不再详述如何建立和发布,如有不清楚的地方请参阅相关资料。

也可以参考我的另两篇文章:

SERVICE)

ServiceAPI)

我们在项目的Service.cs里编写一个查询数据库的API,为了简化问题,我们编写的这个API只接受一个字符串参数,用来在书名字段做前方匹配的查询,返回一个DataSet,这个DataSet中包含一个名为bookinfo的DataTable,bookinfo中含有书名、作者和价格字段,代码如下:

System.Data;

System.Data 

.SqlClient;

//定义一个sqlconnection连接成员

SqlConnection 

sqlconn 

new 

SqlConnection("

Server=webserviceserver;

Initial 

Catalog=book;

uid=sa;

pwd=123456"

);

//貌似必须用sa方式登陆啊

[WebMethod]

欢迎使用我的WEB服务!

DataSet 

searchBook(string 

bookname)

sqlconn.Open();

sql 

select 

top 

50 

书名,作者,价格 

from 

bookinfo 

where 

书名 

like 

'

bookname 

%'

order 

by 

id 

desc"

SqlDataAdapter 

da 

SqlDataAdapter(sql, 

sqlconn);

ds 

DataSet();

da.Fill(ds,"

bookinfo"

ds;

编写好后将WebService发布出去。

现在我们来建立一个winform的Windows应用程序项目,并在项目中将我们刚刚发布的WEBService做为一个WEB引用添加进来。

在项目窗体中创

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1