采用的工具VS2010生成工程

1. 生成webservice工程:建 ASP.NET 空WEB 应用程序。

2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”。

完成上述内容工程结构如下图

下面主要的操作就是在webservice1.asmx.cs文件中进行,里面写了几个服务,两个简单服务两个查询数据库服务;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;
using MySql.Data;
using MySql;
using MySql.Data.MySqlClient; namespace webservice
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{ [WebMethod]
public string HelloWorld()
{
return "Hello World";
} [WebMethod]
public int GetSum(int a, int b)
{
return a + b;
} [WebMethod]
public DataSet query()
{
DataSet ds = new DataSet();
string connstring = "Database=test;Data Source=localhost;User Id=root;Password=root";
MySqlConnection mycn = new MySqlConnection(connstring);
mycn.Open();
MySqlDataAdapter mda = new MySqlDataAdapter("select * from stock_data", mycn);
mda.Fill(ds,"stock_data");
return ds;
} [WebMethod]
public DataSet goldprice()
{
DataSet ds = new DataSet();
string connstring = "Database=test;Data Source=localhost;User Id=root;Password=root";
MySqlConnection mycn = new MySqlConnection(connstring);
mycn.Open();
MySqlDataAdapter mda = new MySqlDataAdapter("select * from goldprice", mycn);
mda.Fill(ds, "stock_data");
return ds;
} }
}

到目前为至C# 的webservice的服务算是写好了。下面我们需要启动些服务F5

运行成功的界面如下图

二:发布此webservice

1. 与发布asp.net是一样的,首先在IIS的网站节点下添加网站;如下图

2. webservice发布到IIS的虚拟目录;选择webservice工程右击点发布进行发布如下图

3. 修改此网站的高级设置: 把应用程序池修改为ASP.NET v4.0即可。

4. 浏览此网站http://192.168.56.1/WebService1.asmx若运行的效果与在VS2010运行的效果一样则部署成功了。

三:webservice服务调用

1. 新建一个测试工程,在工程的引用节点中右击“添加服务引用”把浏览器中的URL填写到地址框中点前往,并修改命名空间;如下图

2. 然后再重新生成一下测试项目,最后在测试项目中定义一个测试方法并调用webservice中的方法。代码如下

private void button1_Click(object sender, RoutedEventArgs e)
{
YDTF.WebService1SoapClient aa = new YDTF.WebService1SoapClient();
button1.Content = aa.HelloWorld();
Menus m = new Menus();
m.Name = "Name";
m.NameSpace = "NameSpace";
DataSet ds = aa.query();
int i = ds.Tables[0].Rows.Count;
}

3. 单步调试一下若运行结果和预料一样则成功了。

C# webservice 编写、发布、调用的更多相关文章

  1. WebService-01-使用jdk发布第一个WebService服务并调用

    Webservice是SOAP+XML,SOAP是基于Http的,Http底层是Socket,先回顾一下Socket: Server: public class Server { public sta ...

  2. WIN8+VS2013编写发布WCF、一(编写)、二(部署)、三(调用)

    原文://http://www.cnblogs.com/tntboom/p/4348483.html 引言:上学期因为写服务器用WCF,所以连查资料再瞎调试勉强成功了,但是这学期又到了用WCF的时候, ...

  3. webservice -- cxf客户端调用axis2服务端

    背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于 ...

  4. spring集成环境下的axis webservice的发布,调试

    在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错. 特别是,如果你是这个方式: 将webservice打aar包,放到tomcat ...

  5. 【Java】Java6 WebService的发布

    WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服务的发布方式也有着天壤之别,它们之间没有经验 ...

  6. delphi7调用java写的webservice,在调用的时候弹出“wssecurityhandler:request does not contain required security header”

    delphi7调用java编写的webservice问题我用delphi7调用java写的webservice,在调用的时候弹出“wssecurityhandler:request does not ...

  7. (转)将wcf 以webservice的方式调用

    将wcf 以webservice的方式调用 问题:a公司使用wcf 发布服务(.net Framework 3.0 or 3.5),b公司需要使用a公司发布的服务 ,但b公司目前阶段只使用.net F ...

  8. Java6 WebService的发布(转)

      Java6 WebService的发布   转:http://lavasoft.blog.51cto.com/62575/227988/   WebService服务发布往往比较混乱,Axis2的 ...

  9. webservice的 发布

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

  10. Java6 WebService的发布

    Java6 WebService的发布   WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服 ...

随机推荐

  1. 如何配置virtualBox端口转发

    1,第一步登陆虚拟主机,安装openssh-server(这一步非常重要,如果不安装,你在宿主机上怎么链接都是连不上的,我当时就犯了这个错误) apt-get install openssh-serv ...

  2. linux网络:常用命令(二)

    1.ping命令:与Windows下基本功能一样但也有所区别 1.命令格式: ping [选项] ip地址或域名主机等 选项 -c 加次数 -d 使用Socket的SO_DEBUG功能. -f 极限检 ...

  3. shell学习之路:流程控制(while)

    while循环: 介绍:while循环是不定循环,也称作条件循环.只要条件判断成立,循环就会一直继续执行,直到条件判断不成立,循环才会停止,这就是和for的固定循环不太一样了. while [ 条件判 ...

  4. 用友android

    获取token要改 value要改 不用通配符 直接双引号

  5. 东京区域2012-2014主要消费产品价格参考表——Excel

    声明: 1.本表格数据取自<日本の統計 2016>: 2.本表所有价格单位为人民币,其日元均以当年平均汇率兑换为此人民币价格: 3.其人民币—日元年均汇率数据取自IMF Data Exch ...

  6. 利用PHP读取文件

    $fp=fopen("D:\\phpStudy\\www\\date\\file\\2.txt","r");if($fp){    while(!feof($f ...

  7. 部分LINUX系统由图形界面启动变更为命令行界面启动的方法

    背景: 图形界面很绚丽,但是现在并不需要图形界面,只需要命令行即可,所以要将图形界面自启动给关闭.    正文:   Centos:     更改文件/etc/inittab的其中一行    id:5 ...

  8. cocos2d-x多分辨率适配方案:setDesignResolutionSize使用

    1. setDesignResolutionSize使用方法及主要的三种适配模式 在cocos2d-x 2.0里,提供了一个叫做setDesignResolutionSize的方法,直接一次设置就可以 ...

  9. JS/HTML 保存图片到本地:HTML <a> download 属性

    JS如何保存图片到本地呢?自己百度一下吧! 这里想要说的是,可以利用 HTML 的 <a> 标签 来是实现保存图片到本地的功能,参考代码如下: <a href="http: ...

  10. 如何打开xip格式的xcode安装包

    解决方法如下: 1.保证存储空间 20G 2.去除解压验证 xattr -d com.apple.quarantine Xcode_8_beta.xip 3.双击解压 详见: 从官网下载的 xcode ...