天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

創(chuàng)建一個(gè)示例和WebMethod特性解析

系列文章導(dǎo)航:

創(chuàng)建一個(gè)示例和WebMethod特性解析

WebService特性和數(shù)組類型解析

類和結(jié)構(gòu)體解析

利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)

Webservice 的設(shè)計(jì)和模式

Remoting和Webservice的區(qū)別


現(xiàn)在開始學(xué)習(xí)Web服務(wù),寫下自己學(xué)習(xí)過程中的一些感受,拿出來與大家分享,歡迎批評(píng)指正。希望能給跟我一樣初學(xué)Web服務(wù)的朋友一些幫助。

Web服務(wù)的宗旨是創(chuàng)建不需要用戶界面就能與其他應(yīng)用程序交互的Web應(yīng)用程序。它是松耦合的,并與服務(wù)器端和客戶端所使用的操作系統(tǒng)、編程語言都無關(guān),這樣就在一定的情況下就會(huì)使你的效率大大提高。但創(chuàng)建Web服務(wù)必須保證的是,服務(wù)器端和客戶端都要支持行業(yè)標(biāo)準(zhǔn)協(xié)議HTTP、SOAP(simple object access protocal 簡單對(duì)象訪問協(xié)議)和XML。

創(chuàng)建Web服務(wù)的過程:

(1):打開VS,創(chuàng)建一個(gè)ASP.NET WEB服務(wù)應(yīng)用程序;

(2):輸入下列代碼,這是一個(gè)有關(guān)學(xué)生信息的二維數(shù)組和幾個(gè)方法

//構(gòu)造并填充info數(shù)組
string[,] strStuInfo ={
                    {
"200511020120","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(1)班","無悔","1"},
                    {
"200511020121","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(1)班","梁需","2"},
                    {
"200511010122","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(1)班","陸磊","3"},
                    {
"200511010220","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(2)班","白靈","4"},
                    {
"200511010221","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(2)班","劍付","5"},
                    {
"200511020222","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(2)班","敬意","6"},
                    {
"200511100120","貳零零五屆","化工生物學(xué)院","生物制藥","(1)班","黃興","7"},
                    {
"200511100221","貳零零五屆","化工生物學(xué)院","生物制藥","(2)班","蕾蕾","8"},
                    {
"200511100322","貳零零五屆","化工生物學(xué)院","生物制藥","(3)班","白冰","9"},
                    {
"200611120120","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(1)班","書并","10"},
                    {
"200611120121","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(1)班","小魚","11"},
                    {
"200611120421","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(4)班","聲聲","12"},
                 };

[WebMethod(Description 
= "根據(jù)學(xué)號(hào)獲得學(xué)生的姓名")]
public string GetName(string strStuNum)
{
    
for (int i = 0; i < strStuInfo.GetLength(0); i++)
    {
        
if (String.Compare(strStuNum, strStuInfo[i, 0], true== 0)
            
return strStuInfo[i, 5].ToString();
    }
    
return "您輸入的學(xué)號(hào)不存在";
}

[WebMethod(Description 
= "根據(jù)學(xué)號(hào)獲得學(xué)生的專業(yè)和班級(jí)")]
public string GetClass(string strStuNum)
{
    
for (int i = 0; i < strStuInfo.GetLength(0); i++)
    {
        
if (String.Compare(strStuNum, strStuInfo[i, 0], true== 0)
        {
            
return strStuInfo[i, 3].ToString() + strStuInfo[i, 4].ToString();
        }
    }
    
return "您輸入的學(xué)號(hào)不存在";
}

[WebMethod(Description 
= "根據(jù)學(xué)號(hào)獲得學(xué)生的入學(xué)時(shí)間")]
public string GetYear(string strStuNum)
{
    
for (int i = 0; i < strStuInfo.GetLength(0); i++)
    {
        
if (String.Compare(strStuNum, strStuInfo[i, 0], true== 0)
        {
            
return strStuInfo[i, 1].ToString();
        }
    }
    
return "您輸入的學(xué)號(hào)不存在";
}

[WebMethod(Description 
= "根據(jù)學(xué)號(hào)獲得學(xué)生的學(xué)院"]
public string GetCollege(string strStuNum)
{
    
for (int i = 0; i < strStuInfo.GetLength(0); i++)
    {
        
if (String.Compare(strStuNum, strStuInfo[i, 0], true== 0)
        {
            
return strStuInfo[i, 2].ToString();
        }
    }
    
return "您輸入的學(xué)號(hào)不存在";
}

[WebMethod(Description 
= "點(diǎn)擊次數(shù)", EnableSession = true)]
public int HitCounter()
{
    
if (Session["HitCounter"== null)
    {
        Session[
"HitCounter"= 1;
    }
    
else
    {
        Session[
"HitCounter"= ((int)Session["HitCounter"]) + 1;
    }
    
return ((int)Session["HitCounter"]);
}

系列文章導(dǎo)航:

創(chuàng)建一個(gè)示例和WebMethod特性解析

WebService特性和數(shù)組類型解析

類和結(jié)構(gòu)體解析

利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)

Webservice 的設(shè)計(jì)和模式

Remoting和Webservice的區(qū)別


 

(3)生成Web服務(wù),在瀏覽器中打開(效果如下)

(4)創(chuàng)建個(gè)其他程序,調(diào)用就可以了!

 

WebMethod特性的EnableSession屬性

此屬性默認(rèn)為false。如果設(shè)置為true,web方法將會(huì)啟用會(huì)話狀態(tài),且繼承自WebService類,那么會(huì)話狀態(tài)集合可以使用WebService.Session屬性訪問,如果沒有集成,則可以直接從HttpContext.Current.Session訪問。

上面代碼中HitCounter()方法為每個(gè)會(huì)話準(zhǔn)備了單擊計(jì)數(shù)器。

會(huì)話狀態(tài)為應(yīng)用程序增加了額外的開銷,如果移除會(huì)話狀態(tài)可以提高性能。然而,會(huì)話狀態(tài)作為全局變量很有用,因?yàn)樗軌虺龀蓡T變量的工作范圍。

需要注意的是:會(huì)話狀態(tài)在Web服務(wù)中是通過cookies實(shí)現(xiàn)的,如果傳輸機(jī)制不是HTTP的話,則不可用。

 

系列文章導(dǎo)航:

創(chuàng)建一個(gè)示例和WebMethod特性解析

WebService特性和數(shù)組類型解析

類和結(jié)構(gòu)體解析

利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)

Webservice 的設(shè)計(jì)和模式

Remoting和Webservice的區(qū)別


 

WebMethod特性的MessageName屬性

Web服務(wù)禁止使用函數(shù)重載。MessageName屬性可以解決由多個(gè)相同的名稱的方法造成的無法識(shí)別的問題,它允許對(duì)每一個(gè)方法的重載使用唯一的別名。當(dāng)從在方法在SOAP消息中引用時(shí),SOAP將使用MessageName而非方法名。

在上面的例子中,為了試驗(yàn)這個(gè)屬性,我改了一下,寫兩個(gè)GetCollege()方法。

 

       [WebMethod(Description = "根據(jù)學(xué)號(hào)獲得學(xué)生的學(xué)院", MessageName = "GetCollegeStuNum")]
        
public string GetCollege(string strStuNum)
        {
            
for (int i = 0; i < strStuInfo.GetLength(0); i++)
            {
                
if (String.Compare(strStuNum, strStuInfo[i, 0], true== 0)
                {
                    
return strStuInfo[i, 2].ToString();
                }
            }
            
return "您輸入的學(xué)號(hào)不存在";
        }

        [WebMethod(Description 
= "根據(jù)排名獲得學(xué)生的學(xué)院", MessageName = "GetCollegeStuRank")]
        
public string GetCollege(int intStuRank)
        {
            
for (int i = 0; i < strStuInfo.GetLength(0); i++)
            {
                
if (String.Compare(intStuRank.ToString(), strStuInfo[i, 6], true== 0)
                {
                    
return strStuInfo[i, 2].ToString();
                }
            }
            
return "您輸入的學(xué)生排名不存在";
        }

系列文章導(dǎo)航:

創(chuàng)建一個(gè)示例和WebMethod特性解析

WebService特性和數(shù)組類型解析

類和結(jié)構(gòu)體解析

利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)

Webservice 的設(shè)計(jì)和模式

Remoting和Webservice的區(qū)別


 

可是當(dāng)你從新生成的時(shí)候,會(huì)發(fā)現(xiàn)不會(huì)在報(bào)錯(cuò)了,但是在瀏覽器打開時(shí),卻會(huì)出現(xiàn)下面的問題。

 

后來看書發(fā)現(xiàn)了這個(gè)問題的原因在于:

由于默認(rèn)WebServiceBinding特性遵循WS-1 BP V1.1,如果兩個(gè)方法處于相同的數(shù)據(jù)綁定,那么該規(guī)范不允許方法的重載(盡管使用了MessageName屬性)可以做兩種選擇:

(1)重命名方法,當(dāng)然用這種方法最好是客戶端沒有鏈接到Web服務(wù)。

(2)創(chuàng)建一個(gè)新的綁定來代特重載方法

做法如下:

1)為類添加新的屬性(文件的摘要下面),代碼如下:

 

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1, Name = "
OverloadedGetCollege",EmitConformanceClaims=true)]
[ToolboxItem(
false)]

NET技術(shù)創(chuàng)建一個(gè)示例和WebMethod特性解析,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久章草一区二区 | 24小时日本高清免费看 | 国产白丝精品爽爽久久蜜臀 | 小sao货水好多真紧h的视频 | 亚洲欧美成人综合 | 羲义嫁密着中出交尾gvg794 | 内射老妇BBX| 日韩亚洲欧洲在线rrrr片 | 忘忧草研究院一二三 | 欧美一道本一区二区三区 | 印度学生xxxxx性14一16 | 女人把腿张开叫男人桶免费视频 | 在线亚洲精品福利网址导航 | 久久无码人妻中文国产 | 老头操美女 | 理论片午午伦夜理片影院 | 国产成人免费在线 | 美女隐私黄www视频 美女议员被泄裸照 | 伊人天天躁夜夜躁狠狠 | 男人J放进女人P全黄网站 | 精品国产福利一区二区在线 | 中文字幕人妻无码系列第三区 | 男男高h浪荡受h | 午夜亚洲精品不卡在线 | 手机在线观看毛片 | 中文字幕爆乳JULIA女教师 | 白白操在线视频 | 青青草A在在观免费线观看 青青草AV国产精品 青青草 久久久 | 性欧美videosex18嫩 | 亚洲人成www在线播放 | 啦啦啦 中国 日本 高清 在线 | 99精品视频免费观看 | 小SAO货水真多把你CAO烂 | 久久91精品国产91 | 成年视频国产免费观看 | 性生生活大片又黄又 | 成人国内精品久久久久影院 | 床上色APP下载免费版 | 经典三级四虎在线观看 | 双性大乳浪受噗呲噗呲h总 双性被疯狂灌满精NP | 嗯啊…嗯np男男双性总受 |