本文通過一個簡單的例子演示了WebService項目的建立與應用。
環境:Win10 64Bit,VS2013
新建WebService項目:文件|新建|項目,打開新建項目對話框,選擇 .NET Framework 3.5,否則看不到“ASP.NET Web 服務應用程序”。
項目建成后,可以看到項目目錄下有一個Service1.asmx,雙擊打開的是Service1.asmx.cs,里面有一個類Service1,以及HelloWorld的方法。
ServiceA.asmx|右鍵|重命名,修改為ServiceA.asmx,對應cs文件的名字也會同時修改,但是類Service1並沒有跟着改,Ctrl+Shift+F,全局搜一下Service1,把他們都改過來。
修改Service1.asmx.cs如下:
[WebMethod] public string MyFunc1(string s) { return "MyFunc1 is called, parameter:" + s; } [WebMethod] public string MyFunc2(string s) { return "MyFunc2 is called, parameter:" + s; }
Debug欄里選擇IE,生成並運行,IE地址欄顯示:http://localhost:6948/ServiceA.asmx,並有一些接口說明。
項目|右鍵|添加|Web 服務(ASMX),名稱輸入ServiceB,確定,方法保持缺省的He'llWorld,生成並運行,IE地址欄顯示:http://localhost:6948/ServiceB.asmx
說明:
在VS中打開ServiceA的情況下運行,IE打開http://localhost:6948/ServiceA.asmx;
在VS中打開ServiceB的情況下運行,IE打開http://localhost:6948/ServiceB.asmx;
如果兩個都關閉,調試運行會打開http://localhost:6948/,並顯示錯誤,可以添加一個Index.html,在里面加上兩個Service的地址鏈接。
接下來建立一個新的項目來使用WebService。注意:保持http://localhost:6948/ServiceA.asmx為打開狀態。
新建一個控制台應用程序,控制台項目|右鍵|添加|服務引用,打開【添加服務引用】對話框,在地址欄中輸入“http://localhost:6948/ServiceA.asmx”,點【轉到】,在服務中列出了“ServiceA”,命名空間輸入“ServiceReferenceA”,【確定】。
可以看到項目中多了一個“Service References”文件夾,里面有一個ServiceReferenceA。
在Program.cs中添加代碼如下:
static void Main(string[] args) { ServiceReferenceA.ServiceASoapClient s = new ServiceReferenceA.ServiceASoapClient(); Console.WriteLine(s.MyFunc1("I1")); Console.WriteLine(s.MyFunc2("I2")); }
生成並運行。如果IE關閉,對應的IIS Express也關了,再運行就會出異常。
讀者可自己嘗試添加http://localhost:6948/ServiceB.asmx的服務。