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

創建一個示例和WebMethod特性解析

系列文章導航:

創建一個示例和WebMethod特性解析

WebService特性和數組類型解析

類和結構體解析

利用YAHOO公開API做天氣預報Web服務

Webservice 的設計和模式

Remoting和Webservice的區別


現在開始學習Web服務,寫下自己學習過程中的一些感受,拿出來與大家分享,歡迎批評指正。希望能給跟我一樣初學Web服務的朋友一些幫助。

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

創建Web服務的過程:

(1):打開VS,創建一個ASP.NET WEB服務應用程序;

(2):輸入下列代碼,這是一個有關學生信息的二維數組和幾個方法

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

[WebMethod(Description 
= "根據學號獲得學生的姓名")]
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 "您輸入的學號不存在";
}

[WebMethod(Description 
= "根據學號獲得學生的專業和班級")]
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 "您輸入的學號不存在";
}

[WebMethod(Description 
= "根據學號獲得學生的入學時間")]
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 "您輸入的學號不存在";
}

[WebMethod(Description 
= "根據學號獲得學生的學院"]
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 "您輸入的學號不存在";
}

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

系列文章導航:

創建一個示例和WebMethod特性解析

WebService特性和數組類型解析

類和結構體解析

利用YAHOO公開API做天氣預報Web服務

Webservice 的設計和模式

Remoting和Webservice的區別


 

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

(4)創建個其他程序,調用就可以了!

 

WebMethod特性的EnableSession屬性

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

上面代碼中HitCounter()方法為每個會話準備了單擊計數器。

會話狀態為應用程序增加了額外的開銷,如果移除會話狀態可以提高性能。然而,會話狀態作為全局變量很有用,因為它能夠超出成員變量的工作范圍。

需要注意的是:會話狀態在Web服務中是通過cookies實現的,如果傳輸機制不是HTTP的話,則不可用。

 

系列文章導航:

創建一個示例和WebMethod特性解析

WebService特性和數組類型解析

類和結構體解析

利用YAHOO公開API做天氣預報Web服務

Webservice 的設計和模式

Remoting和Webservice的區別


 

WebMethod特性的MessageName屬性

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

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

 

       [WebMethod(Description = "根據學號獲得學生的學院", 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 "您輸入的學號不存在";
        }

        [WebMethod(Description 
= "根據排名獲得學生的學院", 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 "您輸入的學生排名不存在";
        }

系列文章導航:

創建一個示例和WebMethod特性解析

WebService特性和數組類型解析

類和結構體解析

利用YAHOO公開API做天氣預報Web服務

Webservice 的設計和模式

Remoting和Webservice的區別


 

可是當你從新生成的時候,會發現不會在報錯了,但是在瀏覽器打開時,卻會出現下面的問題。

 

后來看書發現了這個問題的原因在于:

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

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

(2)創建一個新的綁定來代特重載方法

做法如下:

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

 

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

NET技術創建一個示例和WebMethod特性解析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品免播放器在线观看 | 波多野结衣教师系列6 | 24小时日本在线观看片免费 | 亚洲国产日韩制服在线观看 | 久久国产欧美日韩精品免费 | 国产一及毛片 | 好大好硬好爽好深好硬视频 | 精品人妻无码一区二区三区蜜桃臀 | 国产永不无码精品AV永久 | 久久免费高清 | 中文人妻熟妇精品乱又伦 | 99无人区码一码二码三 | 高h浪荡文辣文神奇宝贝 | 青青草伊人久久 | 欧美free嫩交hd | 久久亚洲精品无码A片大香大香 | 日本红怡院亚洲红怡院最新 | 久久综合中文字幕佐佐木希 | 亚洲欧洲日本无在线码播放 | 琪琪伦伦影院理论片 | 欧洲另类一二三四区 | 亚洲精品在线不卡 | 87影院午夜福利 | 亚洲欧美日韩综合影院 | 扒开小处30p | 免费精品国偷自产在线在线 | 亚洲精品午睡沙发系列 | 久久免费视频在线观看6 | 精品久久久99大香线蕉 | 国内精品免费久久影院 | 真人女人无遮挡内谢免费视频% | 老湿机一区午夜精品免费福利 | 爽死你个放荡粗暴小淫货漫画 | 疯狂小护士 | 日韩免费一区 | 日本一在线中文字幕 | 亚洲一区在线播放 | 日日操日日射 | 西西人体一级裸片 | 儿媳妇完整版视频播放免费观看 | 孕交videosgratis乌克兰 |