1. 程式人生 > >C#最簡單最完整的webservice例項

C#最簡單最完整的webservice例項

一、環境 

    我的開發環境是xp的sp3,這個對於asp.net的要求是v2.0.50727

如果不是的話會報錯,可以到本地的

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

執行即可。如果自己的已經安裝過的就可以跳過,否則在webservic的除錯中會報一下錯:

名稱以無效字元開頭。處理資源 'http://localhost/ws/Service.asmx' 時出錯。第 1 行,位置: 2

   其次,需要安裝IIS,我測試的版本是iis5.1, 本來裝了iis6 但是用不了,所以版本也很重用,本人在次耗費了部分心血。如果不清楚版本可以看看百科裡的描述以作決定的參考:

http://baike.baidu.com/view/850.htm

 

二、程式

這個過程總共建立2個獨立的專案:一個webservice 專案,一個呼叫。

   1 建立和部署webservice 專案:

   用vs2008新建webservicesT  :注意是ASP.NET Web 服務應用程式

   C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 之後系統會自動生成一個類似於helloworld的一個簡單例子:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 開啟之後,可以看到

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

至此最簡單的webservice就建立好了。我們不需要做任何事情,就用他來測試。

 

 接著需要對整個工程“生成”和釋出。

 生成只要右鍵點選專案選擇“生成”即可。

釋出也一樣,如下截圖。

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

  把釋出的檔案拷到iis工作路徑中,並把這個資料夾“web共享”。

  在資源管理器中:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

web

共享:

  C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas  

在iis中檢視,我建的檔名為sv:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 最後來檢視一下是不是部署成功,可以在ie位址列中輸入相關的url:

 我涉及的url  http://localhost/sv/Service1.asmx

 成功的話可以看到下面的截圖

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

然後點選“HelloWorld”連結:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

然後點選“HelloWorld”連結,就可以最終的頁面顯示的xml內容:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 這樣表示整個

webservice的建立和部署是成功的。

 

 

  2 接下來建立對webservice的呼叫除錯。

 我是建立了一個web應用專案來呼叫測試的。

 步驟跟建立webservice專案類似,

注意選擇好型別如圖: 

  C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

其次,最重要的一步就是引用webservice ,

 專案右鍵選擇“新增web引用”,可以看到下圖:

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 填入之前建立的webservice 對應的url ,此處是 http://localhost/sv/Service1.asmx

  點選前往即可:

  C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

  

  然後把往“Web引用名”中填入一個名字,我填的是kiss,這個名字比較重要,因為下面的步驟中要使用他,當然你可以任意,但請記住。

  然後在後臺中寫入呼叫的方法頁面也加入觸發事件:

 後臺程式碼:

 using System;
 2 
 3 using System.Collections;
 4 
 5 using System.Configuration;
 6 
 7 using System.Data;
 8 
 9 using System.Linq;
10 
11 using System.Web;
12 
13 using System.Web.Security;
14 
15 using System.Web.UI;
16 
17 using System.Web.UI.HtmlControls;
18 
19 using System.Web.UI.WebControls;
20 
21 using System.Web.UI.WebControls.WebParts;
22 
23 using System.Xml.Linq; 
24 
25  
26 
27 namespace wbcall
28 
29 {
30 
31     public partial class _Default : System.Web.UI.Page
32 
33     {
34 
35         protected void Page_Load(object sender, EventArgs e)
36 
37         {   }
38 
39         public string GetString()
40 
41         {    kiss.Service1 n = new kiss.Service1();
42 
43              string ss = n.HelloWorld();
44 
45              return ss;
46 
47         }
48 
49     }
50 
51 }

前臺程式碼:

1  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="wbcall._Default" %>
 2 
 3  
 4 
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 6 
 7  
 8 
 9 <html xmlns="http://www.w3.org/1999/xhtml" >
10 
11 <head runat="server">
12 
13     <title>無標題頁</title>
14 
15     <script language="javascript" type="text/javascript">
16 
17 function B()
18 
19 {
20 
21 var a="<%=GetString() %>";
22 
23 alert (a);
24 
25 }
26 
27 </script>
28 
29 </head>
30 
31 <body>
32 
33     <form id="form1" runat="server">
34 
35     <div>
36 
37          kkkk
38 
39          <br />
40 
41          <input id="Bnt1" type="Button" value="button" runat ="server" onclick="B()" />
42 
43     </div>
44 
45     </form>
46 
47 </body>
48 
49 </html>


兩個的截圖分別如下:

 C最簡單最完整的webservice例項 - fyinthesky - Dave RojasC最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

然後把此專案“生成”、“釋出”到iis上,這個過程跟 webservice 一樣,不再多說。

假如已經完成,接下來可以做測試了。

很簡單,在瀏覽器的位址列中輸入: http://localhost/sc/Default.aspx

可以看到

C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas 

 

 點選按鈕“button”

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 系統會有這麼一個提示,提示的內容就是之前在

webservice中的寫的,可以看一下兩者是一致的,都輸出"HelloWorld"。

 C最簡單最完整的webservice例項 - fyinthesky - Dave Rojas

 

 整個過程就結束了。當然呼叫的形式有多種,這裡我只用了這個最簡單的,其餘的大家可以一起研究。

 這個webservice的建立和呼叫測試我都是在本機上,如果有必要可以在分散式環境上來測試。 


複製程式碼
 1  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="wbcall._Default" %>
 2