如何建立和釋出.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檔案,包含如下程式碼:
- using System;
- using System.Web;
- using System.Web.Services;
- using System.Web.Services.Protocols;
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- publicclass Service : System.Web.Services.WebService {
- public Service () {
- //如果使用設計的元件,請取消註釋以下行
- //InitializeComponent();
- }
- [WebMethod]
- publicstring HelloWorld() {
- return"Hello World";
- }
- }
可以在這裡修改自己的名稱空間,加入自己的方法,但本文只是為了說明如何建立和釋出,所以對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程式碼- iis訪問aspx檔案顯示404無法找到檔案?
- 解決辦法:
- Microsoft Windows [版本 5.2.3790]
- (C) 版權所有 1985-2003 Microsoft Corp.
- C:\Documents and Settings\Administrator>cd c:\windows\microsoft.net
- C:\WINDOWS\Microsoft.NET>cd fra*
- C:\WINDOWS\Microsoft.NET\Framework>cd v2*
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -i -enable
- 開始安裝 ASP.NET (2.0.50727)。
- .........................................................
- ASP.NET (2.0.50727)安裝完畢。
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>
看執行網頁直接在asmx檔案上右鍵瀏覽。
2010.09.02
一次釋出後,發現伺服器上C盤剩餘空間為零,服務釋出在D盤,但是webservice已經無法訪問了,Service Unavailable,騰出空間並且重啟了IIS Admin Service後,正常,後經驗證,再次釋出後,C盤確實又小了2M,估計釋出後是會佔用C盤空間