在VS中創建WebService並發布至IIS


創建WebService

  打開VS,新建空項目,注意選擇.NET Framework的版本.這里我選擇的是.NET Framework 4

新建好項目后,在項目中添加一個WebService項


打開這個文件,我們可以看到,代碼如下

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.Services;  
  
namespace CalculateService  
{  
    /// <summary>  
    /// WebService1 的摘要說明  
    /// </summary>  
      
  
    [WebService(Namespace = "http://tempuri.org/")]  
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    [System.ComponentModel.ToolboxItem(false)]  
    // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消注釋以下行。   
    // [System.Web.Script.Services.ScriptService]  
    public class CalCulService : System.Web.Services.WebService  
    {  
  
        [WebMethod]  
        public string HelloWorld()  
        {  
            return "Hello World";  
        }  
    }  
} 
View Code

將HellowWorld這段代碼刪除,修改后如下

public class CalCulService : System.Web.Services.WebService  
    {        
        [WebMethod]  
        public int Sum(int a, int b)  
        {  
            return a + b;  
        }  
  
        [WebMethod]  
        public int Sub(int a, int b)  
        {  
            return a - b;  
        }  
  
        [WebMethod]  
        public double Mult(double a, double b)  
        {  
            return a * b;  
        }  
  
        [WebMethod]  
        public double Div(double a, double b)  
        {  
            return a / b;  
        }  
    }  
View Code

此時,我們已經完成這個WebService的代碼部分,生成項目,運行WebService1.asmx,即可看到服務方法。

 查看詳細信息(方法,參數等)

接下來我們要將這個WebService打包發布。

發布到IIS

   在項目上點擊右鍵,點擊菜單中的發布,進入發布web對話框,點擊下拉菜單選擇新建配置文件 config1

目標位置: E:\calcul


下一步,發布

完成以上步驟后,我們可以在E:\calcul文件夾內看到生成的以下文件



配置IIS

  在網站(默認網站或者自己建的網站huyWeb)下,添加虛擬目錄

 


 瀏覽網站。

 可能遇到的錯誤:目錄問題

 


問題2:打開WebService1.asmx出錯,  “分析器錯誤消息: 未能創建類型“WebService1.Service1”。

解決:首先必須先在IIS在創建一個虛擬目錄,如果這個時候直接在瀏覽器里調用WebService就會出現上述錯誤。原因是必須為上面 創建的虛擬目錄創建單獨的應用程序,方法是右擊虛擬目錄,點擊“添加應用程序...”,目錄與剛才的虛擬目錄物理路徑要一致,添加完成后就可以正常使用 WebService了!


然后設置其默認文檔為WebService1.asmx。

使用WebService

  打開vs,新建項目 Asp.net Web應用程序,項目中添加web窗體。在項目右鍵 添加服務引用,


單擊高級—添加Web引用。


在URL中輸入我們發布的WebService的URL地址,系統會自動搜索到服務.並且為Web引用設置一個引用名.此引用名將是我們在項目中引用這個服務的命名空間。

點擊添加引用,完成。

接下來,我們在WebForm1的cs文件中寫如下代碼

huyService.WebService1 cal = new huyService.WebService1();
            int a = 14;
            int b = 5;
            Response.Write(cal.Sum(a, b).ToString());
運行

VS自帶webservice調試工具,位置:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\WcfTestClient.exe

使用WSDL工具生成WebService服務類

WebService有兩種使用方式,一種是直接通過添加服務引用,另一種則是通過WSDL生成。既然有直接引用的方式,為什么還要通過WSDL生成呢? 因為通過WSDL生成,就只有一個.cs 文件,便於管理,更簡潔。

電腦C盤搜索: wsdl.exe。進到wsdl所在的目錄,然后cmd,wsdl /language:c# /n:XYS.MISS.Photo.PhotoAdmin /out:d:\Temp\TestService.cs D:\Temp\TestService.wsdl

在d:/Temp下就會產生一個TestService.cs 文件

  • /language:默認為C#語言,輸出語言
  • /n:mynamespace namespace
  • /out:myProxyClass.cs 輸出文件名

注意:D:\Temp\TestService.wsdl 是wsdl路徑,可以是url路徑:http://localhost/Temp/Test.asmx?wsdl

【直接只輸入 wsdl  回車,看更多參數的用法】也可直接看:根據WSDL生成代理類方式

更多參考:C# 利用VS自帶的WSDL工具生成WebService服務類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM