C#webservice实例

6 篇文章 0 订阅
5 篇文章 0 订阅

环境说明:win7、IIS6.0、 VS2010、 SQL Server 2005。

第一步:创建webservice项目

在VS2010中创建webservice项目有两种方法:在.net 4.0下创建和在.net 4.0以下创建的方法;此处选择在.net 4.0下创建的方法,即在VS2010中执行文件-》新建-》项目-》ASP.NET空Web应用程序,再在项目中添加Web服务;

第二步:按webservice编写代码(将DataSet转Xml)

[WebMethod(Description = "说明")]
        public XmlDataDocument GetSiteAData()
        {
            
            DataSet ds = new DataSet();
            SqlConnection conn = new SqlConnection("server = BANG-PC\\SQLEXPRESS; database = sharpdemo;uid = sa; pwd = sasa");
            conn.Open();
            string sql = "select * from Login";
            SqlDataAdapter da = new SqlDataAdapter(sql,conn);
            da.Fill(ds,"list");
            conn.Close();
            ds.EnforceConstraints = false;
            XmlDataDocument xd = new XmlDataDocument(ds);
            XmlNode root1 = xd.DocumentElement;
            XmlNodeList roots = root1.SelectNodes("list");
            foreach (XmlNode roota in roots)
            {
                XmlElement link = xd.CreateElement("SiteName");
                link.InnerText = "测试";
                roota.AppendChild(link);
            }
            return xd;
        }

第三步:在IIS6.0中发布webservice,详见http://www.jb51.net/article/29787.htm

发布后的URL:http://localhost:8080/WebService11.asmx

注意:web引用名将作为你加入的webservice的命名空间,这里的web引用名为SiteA

第四步:创建调用webservice项目并添加web引用

创建一个ASP.NET空Web应用程序,并新建index.aspx窗体,在该窗体中添加一个GridView控件;
添加web引用:右击项目,点添加web引用,输入webservice地址,如:http://localhost:8080/WebService11.asmx,必须保证你输入的webservice存在.然后引用即可;

在index.aspx后台代码中添加调用webservice代码(将Xml转DataSet)
protected void Page_Load(object sender, EventArgs e)
        {
            SiteA.WebService11 serviceA = new SiteA.WebService11();
            DataSet ds = new DataSet();
            XmlNode xmlNode1;
            XmlDataDocument xd = new XmlDataDocument();
            StringBuilder xmlString1;
            xmlNode1 = serviceA.GetSiteAData();
            if (xmlNode1 == null)
                return;
            xmlString1 = new StringBuilder(xmlNode1.OuterXml);
            if (xmlString1.ToString().Equals("<NewDataSet xmlns=\"\"></NewDataSet>"))
                return;
            xd.LoadXml(xmlString1.ToString());
            ds.ReadXml(new XmlNodeReader(xd));
            GridView1.DataSource = ds.Tables["list"].DefaultView;
            GridView1.DataBind();
        }


在操作过程中出现问题:

1、System.InvalidOperationException: Unable to generate a temporary class无法生成临时类(result=1).
 error CS2001: Source file &#39;C:\Windows\TEMP\qdn330ew.0.cs; could not be found

解决方法:找到C:\Windows\TEMP,给Temp文件夹的user用户添加足够的权限;

2、无法识别的属性“targetFramework”。请注意属性名称区分大小写

行 9:      <system.web>
行 10:         <compilation debug="false" targetFramework="4.0" />
行 11:     </system.web>

解决方法:修改应用程序池的.NET Framework 版本为相应版本即可,程序是.net 4.0的,而iis中的应用程序池是.net 2.0的

参考:http://blog.csdn.net/vampireal/article/details/416180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值