1. 程式人生 > >如何建立和釋出.asmx Web Service

如何建立和釋出.asmx Web Service

建立和釋出Web Service
Web服務方法中可以返回一個DataSet物件

WEB服務可以說是下一代WEB應用程式的基礎,無論客戶端是WINDOWS應用、ASP.NET Web Form程式、甚至其他語言的客戶端,都可以與同一個WEB服務通訊,其平臺和語言無關性使其有了廣闊的發展空間。

利用VS2005和IIS我們可以很容易地釋出一個WEB SERVICE

環境:Windows Server 2003,.Net FrameWork 2.0,IIS6.0

工具:VS2005

1.首先VS2005中新建一個WEB服務專案。

開啟“檔案”->“新建”->“網站”,在對話方塊中選擇“ASP.NET Web服務”,VS2005會自動生成一個Service.cs檔案,包含如下程式碼:

C#程式碼
  1. using System;  
  2. using System.Web;  
  3. using System.Web.Services;  
  4. using System.Web.Services.Protocols;  
  5. [WebService(Namespace = "http://tempuri.org/")]  
  6. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  7. publicclass Service : System.Web.Services.WebService {  
  8.     public Service () {  
  9.         //如果使用設計的元件,請取消註釋以下行
  10.         //InitializeComponent();
  11.     }  
  12.     [WebMethod]  
  13.     publicstring HelloWorld() {  
  14.         return"Hello World";  
  15.     }  
  16. }  


可以在這裡修改自己的名稱空間,加入自己的方法,但本文只是為了說明如何建立和釋出,所以對Service.cs不做任何更改。其中可能會需要在專案中新增dll,比如log4net.dll,除了在程式碼中宣告使用:using log4net; 還有就是在專案上右鍵 - 新增引用 - 新增該dll。就會最終將其新增在專案根目錄的Bin資料夾下。

2.生成網站

很簡單,“生成”->“生成網站”或直接Shift+F6

3.釋出網站

也是簡單,“生成”->“釋出網站”,這裡會彈出一個對話方塊,什麼也不需要修改,記下發布的目錄。比如:C:\我的文件\Visual Studio 2005\Projects\WebSite1\PrecompiledWeb\WebSite1,我們需要目錄下的檔案。

4.配置IIS

以windows server 2003為例,首先如果伺服器上沒有安裝iis,則先須安裝:

控制面板新增刪除 -> 新增/刪除元件 -> 應用程式伺服器 -> Internet資訊服務

如安裝過程中需要2003安裝光碟上的資料,具體對應是,例如光碟iso檔案解壓後的話:

cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1\I386

之後選擇什麼是對話方塊上有提示的了,例如IISBACK.VB_之類

進入IIS:

管理工具 -> Internet 資訊服務管理器

在IIS管理器 - 網站 - 預設網站(或自己再新建一個網站)下新建一個虛擬目錄,比如webservice,並將第3步釋出目錄中的所有檔案和目錄拷貝到這個目錄中,開啟IIS,找到你的站點,在這個webservice目錄上點右鍵,選擇屬性,在彈出對話方塊的“虛擬目錄”選擇項卡中,應用程式名後,點選“建立”按鈕,然後確定即可。

到這時,應該已經完成,你可以通過訪問http://域名/webservice/Service.asmx來驗證。

至此,仍有可能不好訪問且如上建立的webservice虛擬目錄中若無asp.net選項卡,那就很有可能是如下問題。

注意:

當程式可能需要在Framework2.0框架上執行,而在iis中的預設.net環境是1.1。這時將發生不可識別的節點的問題。

解決辦法:

將.net環境升級為2.0,開始 -> 執行 -> cmd ->

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

有時仍舊會提示需要安裝.net framework 3.5以上版本

以上安裝完畢後,還是可能有些小問題的,比如沒有許可權執行指令碼啊,那就在虛擬目錄 - 執行許可權 中選擇純指令碼

如果還有404, 則:

Js程式碼
  1. iis訪問aspx檔案顯示404無法找到檔案?  
  2. 解決辦法:  
  3. Microsoft Windows [版本 5.2.3790]  
  4. (C) 版權所有 1985-2003 Microsoft Corp.  
  5. C:\Documents and Settings\Administrator>cd c:\windows\microsoft.net  
  6. C:\WINDOWS\Microsoft.NET>cd fra*  
  7. C:\WINDOWS\Microsoft.NET\Framework>cd v2*  
  8. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -i -enable  
  9. 開始安裝 ASP.NET (2.0.50727)。  
  10. .........................................................  
  11. ASP.NET (2.0.50727)安裝完畢。  
  12. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>  
 

看執行網頁直接在asmx檔案上右鍵瀏覽。

2010.09.02

一次釋出後,發現伺服器上C盤剩餘空間為零,服務釋出在D盤,但是webservice已經無法訪問了,Service Unavailable,騰出空間並且重啟了IIS Admin Service後,正常,後經驗證,再次釋出後,C盤確實又小了2M,估計釋出後是會佔用C盤空間