逐步解說:使用 Visual Basic 或 Visual C# 存取 Web 服務
下列逐步解說為您說明用來從 Visual Basic 或 Visual C# 所建立的應用程式存取 Web 服務的程序。
在逐步解說的課程中,您將完成下列活動:
使用 ASP.NET Web 應用程式專案範本建立用戶端應用程式
加入 Web 服務的 Web 參考
撰寫存取 Web 服務的程式碼
在偵錯模式中執行 Web 應用程式
部署 Web 應用程式
若要完成逐步解說,您必須提供下列項目:
由於這個逐步解說使用 Web 應用程式存取 Web 服務,因此您必須提供符合建立 Web 專案之需求的電腦。您還必須在 Web 伺服器所在的電腦上,擁有足夠的使用權限,才能建立 Web 服務專案。
從下列逐步解說中建立的 Web 服務:
建立 Web 服務用戶端專案
在此逐步解說中,您將會建立一個簡單的 Web 應用程式,可存取 TempConvert1 Web 服務 (這是提供給逐步解說:使用 Visual Basic 或 Visual C# 建立 Web 服務中所建立之 Web 服務的名稱)。
注意事項: |
---|
如果您在建立時變更了溫度換算 Web 服務的名稱,只要取代 TempConvert1 名稱出現在整個逐步解說中的適當名稱即可。 |
若要建立 ASP.NET Web 應用程式
在 [檔案] 功能表上,按一下 [新增網站]。
在 [新網站] 對話方塊中,選取 [ASP.NET 網站] 圖示。
輸入您將在其上開發 Web 應用程式的 Web 伺服器的位址,並指定 TempConvertClient1 做為目錄名稱,例如 "http://MyServer/TempConvertClient1"。根據預設,專案會使用您的本機電腦位置:"http://localhost"。
注意事項: 對於某些專案類型而言,因為指定位置會設定專案名稱,因此無法使用 [名稱] 文字方塊。舉例來說,Web 應用程式與 XML Web Service 都位於 Web 伺服器上,而且是由該伺服器上指定的虛擬目錄取得其名稱。
注意事項: 您是在開發伺服器上開發 Web 應用程式。根據預設,開發伺服器就是您的本機電腦。通常,您會在開發伺服器上開發和建置專案,然後再將它部署到裝載著使用部署專案之 Web 應用程式的另一個伺服器 (即部署伺服器)。然而,如果您直接在裝載 Web 應用程式的伺服器上進行開發,則開發伺服器和部署伺服器就是相同的伺服器。
按一下 [確定],建立專案。
在 [方案總管] 中,以滑鼠右鍵按一下 [Default.aspx],然後選擇 [設計工具檢視],開啟設計工具。
從 [工具箱] 的 [Web Form] 索引標籤,分別將一個 [文字方塊]、[標籤] 和 [按鈕] 拖曳至 [Default.aspx] 的設計介面上,並依照您的喜好排列。
在您加入的按鈕 [Button1] 上按一下滑鼠右鍵,然後在快速鍵功能表上按一下 [屬性]。在 [屬性] 視窗中,將 [Text] 屬性設為 [Convert]。
以滑鼠右鍵按一下您加入的標籤 [Label1],然後在快速鍵功能表上按一下 [屬性]。在 [屬性] 視窗中,清除 [Text] 屬性,讓它成為空白標籤。
加入 Web 參考
Web 服務探索是用戶端藉以尋找 Web 服務並取得其服務描述的程序。Visual Studio 中 Web 服務探索的程序牽涉到要遵循預先決定的演算法來質詢網站。程序的目標是要找出服務描述,它是使用 Web 服務描述語言 (WSDL) 的 XML 文件。如需詳細資訊,請參閱XML Web Service 探索。
服務描述中說明有哪些服務可用,以及與這些服務互動的方法。少了服務描述,就不可能透過程式設計的方式與 Web 服務互動。如需詳細資訊,請參閱 XML Web Service 描述。
您的應用程式必須能夠與 Web 服務通訊,而且還必須能夠在執行階段找到 Web 服務。若加入 Web 參考至您的 Web 服務專案,便可以藉由產生可做為與 Web 服務間的介面並提供 Web 服務的本機表示之 Proxy 類別來做到這一點。如需詳細資訊,請參閱 Visual Studio 中的 Web 參考和HOW TO:產生 Web 服務 Proxy。
若要加入 Web 參考
在 [網站] 功能表中,選擇 [加入 Web 參考]。
在 [加入 Web 參考] 對話方塊的 [URL] 方塊中,輸入 URL 以取得想存取之 Web 服務的服務描述,例如 http://localhost/TempConvert1/Service1.asmx。然後按一下 [移至] 按鈕,擷取有關 Web 服務的詳細資訊。
-或-
如果 Web 服務存在於本機電腦上,請按一下瀏覽器窗格內的 [本機電腦上的 Web 服務] 連結。然後在提供的清單中按一下 TempConvert1 Web 服務的連結,擷取有關 Web 服務的資訊。
在 [Web 參考名稱] 方塊中,將 Web 參考重新命名為 ConvertSvc,即要用於這個 Web 參考上的命名空間。
按一下 [加入參考],加入目標 Web 服務的 Web 參考。如需詳細資訊,請參閱HOW TO:加入和移除 Web 參考。
Visual Studio 會下載服務描述,並產生 Proxy 類別做為您的應用程式與 Web 服務之間的介面。
存取 Web 服務
一旦將 Web 服務的參考加入至您的專案後,下一個步驟就是建立 Web 服務類別的執行個體。然後,您可以藉由呼叫 Proxy 類別中的方法,使用您存取任何物件方法的同樣方式來存取 Web 服務的方法。當您的應用程式呼叫這些方法時,Visual Studio 產生的 Proxy 類別程式碼會處理您的應用程式與 Web 服務之間的通訊。
首先,您要建立 Web 服務 Proxy 類別的執行個體。接下來,您要取得 TextBox1 中的值,並使用 Proxy 類別呼叫 Web 服務的 ConvertTemperature 方法。然後,您要把 Web 服務傳回的值顯示在 Label1 中。
若要存取 Web 服務
按兩下 WebForm1.aspx 上的 [轉換] 按鈕,替這個按鈕建立一個事件處理方法,並顯示程式碼後置的檔案。
請輸入下列程式碼:
' Visual Basic Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e as EventArgs) Handles Button1.Click Dim ws As New ConvertSvc.Service Dim dFahrenheit As Double Dim dCelsius As Double Try dFahrenheit = Convert.ToDouble(TextBox1.Text) dCelsius = ws.ConvertTemperature(dFahrenheit) Label1.Text = dCelsius.ToString() Catch Label1.Text = "Conversion failed." End Try End Sub // C# protected void Button1_Click (System.Object sender, System.EventArgs e) { try { ConvertSvc.Service1 ws = new ConvertSvc.Service1(); double dFahrenheit = Convert.ToDouble(TextBox1.Text); double dCelsius = ws.ConvertTemperature(dFahrenheit); Label1.Text = dCelsius.ToString(); } catch { Label1.Text = "Conversion failed."; } }
注意事項: 加入 Web 參考時所產生的 Web 服務類別名稱,可能不同於上述程式碼所顯示的 Service1。
在 [方案總管] 中,選取 [Default.aspx]。
在 [網站] 功能表上,按一下 [設定為起始頁]。
儲存方案。
如需詳細資訊,請參閱HOW TO:以 Managed 程式碼存取 Web 服務。
Web 服務用戶端偵錯
Visual Studio 提供一些從 IDE 建置和執行 Web 應用程式的方法,例如:
啟動 (並偵錯)
啟動但不偵錯
在瀏覽器中檢視
如同 Visual Studio 專案,這個 Web 應用程式針對發行和偵錯版本會有不同的組態。因為您是使用 ASP.NET Web 應用程式專案範本來建立這個專案,所以 Visual Studio 會自動建立這些組態,並設定適當的預設選項和其他設定。如需詳細資訊,請參閱HOW TO:設定偵錯和發行組態。
在此逐步解說中,您將在 Button1_Click 事件中放置中斷點,並使用「啟動 (並偵錯)」方法。如需詳細資訊,請參閱HOW TO:以 Managed 程式碼對 Web 服務進行偵錯。
進行偵錯前,請先驗證您的偵錯設定。如需詳細資訊,請參閱偵錯準備:ASP.NET Web 應用程式。
若要使用中斷點並在偵錯方式下啟動 Web 應用程式
在 [偵錯] 功能表中,按一下 [新增中斷點],然後選擇 [在函式中斷]。
在 [Function] 方塊中輸入 Button1_Click,然後按一下 [確定],即可將中斷點放在 Button1_Click 事件處理常式上。如需詳細資訊,請參閱中斷點概觀。
在 [偵錯] 功能表中,按一下 [啟動],然後按一下 [未啟用偵錯] 視窗中的 [確定],啟動偵錯。
這個命令會指示 Visual Studio 在偵錯工具中執行 Web 應用程式。Visual Studio 會建置專案,並將其部署至指定的開發伺服器。完成時,預設瀏覽器會啟動並巡覽至部署伺服器上的 .aspx 檔案。
瀏覽器顯示此頁後,請在文字方塊內輸入數字 212,然後按一下 [轉換] 按鈕。
當處理到 Button1_Click 事件處理常式時,就會停止。Visual Studio 偵錯工具會將含有中斷點的行反白,您可以在中止期間執行各種工作。如需詳細資訊,請參閱 偵錯工具資料表和在偵錯工具中檢視資料。
從 [偵錯] 功能表上,按一下 [繼續],繼續進行處理。
Web 服務會藉由傳回已轉換的值以做出回應,而且應用程式會將 Label1 的文字設定為 100。
若要停止執行 Web 應用程式並回到 [程式碼編輯器],請在 [偵錯] 功能表中按一下 [停止偵錯]。
在 [偵錯] 功能表上,按一下 [清除所有中斷點]。
部署用戶端
若要讓其他人也能使用您的 Web 應用程式,您必須將它部署到您希望支援的用戶端可以存取的 Web 伺服器。若要將 Web 應用程式部署至開發伺服器以外的伺服器,您可以加入 Web 安裝專案,或是將必要的檔案複製到目的伺服器。在這個逐步解說中,您可以選擇部署這個 Web 應用程式的方法。如需詳細資訊,請參閱部署應用程式和元件。
若要使用 Web 安裝專案部署 Web 應用程式
在 [檔案] 功能表,上指向 [加入],然後按一下 [新增專案]。
依序選取 [其他] 節點、[安裝和部署專案] 節點,然後按一下 [Web 安裝專案]。
在 [名稱] 方塊中輸入 TempConvertClient1WebSetup,然後按一下 [確定]。
注意事項: 根據預設,當安裝程式在您的部署伺服器上建立虛擬目錄時,會使用部署專案名稱。
從 [檔案系統編輯器] 的左側窗格中,選取 [Web 應用程式資料夾]。如需詳細資訊,請參閱檔案系統編輯器。
在 [方案總管] 中,以滑鼠右鍵按一下 [TempConvertClient1WebSetup]、指向 [加入],然後按一下 [專案輸出]。
在 [加入專案輸出群組] 對話方塊中,選取 [內容檔]。如需詳細資訊,請參閱HOW TO:在檔案系統編輯器中新增及移除專案輸出。
- [內容檔] 群組是由 Web 應用程式的其餘檔案所組成,例如 WebForm1.aspx 和 Web.config 檔案。
按一下 [確定]。
在 [方案總管] 中,以滑鼠右鍵按一下 [TempConvertClient1WebSetup] 專案,然後在快速鍵功能表上按一下 [建置]。
這會在本機專案目錄中建立 Windows Installer 檔案。執行這個檔案則會安裝 Web 應用程式。
若要複製專案來部署 Web 應用程式
在 [方案總管] 中,選取 [TempConvertClient1] 專案節點。
在 [專案] 功能表上,按一下 [複製網站]。
按一下 [連接至] 下拉方塊旁邊的圖示,開啟 [開啟網站] 對話方塊。瀏覽至您想要將專案複製到其中的位置。
在 [來源網站] 窗格中,選取要複製的檔案,然後按一下向右箭號的圖示,將這些檔案移至 [遠端網站] 窗格。
按一下 [複製網站] 來複製網站。