.Net下WebService的創建、發布及常見問題整理


1.創建WebService

      以VS2013為例,打開VS2013,選擇新建項目,Web分類下的“ASP.NET Web空應用程序”,注意選擇上端的.net framework版本,這里我們選擇的是4.0,然后確定。如下圖:

 

新建好項目后,在項目中添加一個新建項——Web服務,如下圖:

雙擊打開這個.asmx文件,我們可以看到對應.cs文件的代碼,里面有一個默認HelloWorld函數,我們在其中手動添加一個Sum求和函數,最終代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebServiceTest
{
    /// <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 WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        /// <summary>
        /// 獲取操作數a,b相加的和
        /// </summary>
        /// <param name="a">操作數a</param>
        /// <param name="b">操作數b</param>
        /// <returns></returns>
        [WebMethod]
        public string Sum(int a, int b)
        {
            return string.Format("{0}", a + b);
        }
    }
}

    此時,一個簡單的WebService程序已經編寫完成,生成代碼,運行,會在瀏覽器中看到如下結果:

 

    點擊其中的HelloWorld和Sum函數,就可以調試相應的函數功能。

2.發布該WebService

     在該項目上右鍵,選擇發布,然后在彈出的對話框中進行如下操作:

 

隨便寫入一個配置文件名稱,點擊下一步

 

之后,依次點擊下一步,最后點擊發布。

發布完成后,可以在目標位置D:\WebSiteRoot\WebServiceTest路徑下看到相應的文件。

 

然后再配置IIS

打開IIS管理器,選擇網站->右鍵添加網站 

注:(1)網站名稱隨便填寫,應用池選擇,選擇程序運行需要的.Net FrameWork版本,一定要選擇和新建項目是相同的版本

       (2)物理路徑,選擇上面WebService發布的程序的路徑(D:\WebSiteRoot\WebServiceTest)

       (3)綁定,IP地址不填,或者填寫本機IP地址,修改端口,端口不能其他程序使用過

        如下圖所示:

發布完成后訪問方式為:http://192.168.2.123:8666/Service.asmx 或 http://localhost:8008/Service.asmx如果出現下圖所示,說明發布成功。

 

有時候也會遇到很多報錯,下面將這些錯誤整理一下:

報錯1:目錄瀏覽問題:

這個錯誤可以忽略不修改,也可以根據網頁中的提示修改:

 

解決方法如下圖:

 

報錯2:

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

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

 

報錯3:

HTTP 錯誤 404.3 - Not Found
由於擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程序。如果應下載文件,請添加 MIME 映射。

 

解決辦法如下:

iis7  :控制面板-》打開或關閉windows功能-》Internet信息服務-》萬維網服務-》應用程序開發功能,勾選上“.net擴展性”和“ASP.NET”,保存后,重啟IIS服務器即可。

iis8:控制面板-》打開或關閉windows功能-》Internet信息服務-》萬維網服務-》應用程序開發功能,勾選上“.net Extensibility3.5” 及等帶.net的選項,保存后,重啟IIS服務器即可。

iis默認安裝的時候是沒有勾選這些選項的。

 

報錯4:配置錯誤

說明: 在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。 

分析器錯誤消息: 無法識別的屬性“targetFramework”。請注意屬性名稱區分大小寫。

源錯誤: 

行 24:             設置為 true。
行 25:         -->
行 26:             <compilation debug="true" targetFramework="4.0"/>
行 27:             <!--
行 28:             通過 <authentication> 節可以配置 ASP.NET 使用的 


源文件: E:\NET\CRM.Web\web.config    26 


版本信息: Microsoft .NET Framework 版本:2.0.50727.4961; ASP.NET 版本:2.0.50727.4955

 

解決方法:

該錯誤是由於IIS中選擇的.net framework版本和項目中的不一致造成的,修改IIS中的版本即可。

 

如果發現選擇應用池時沒有對應的framework版本,擇在左側的“應用程序池”中新建對應的版本即可。

 

問題5:

HTTP 錯誤 500.21 - Internal Server Error

處理程序“WebServiceHandlerFactory-Integrated”在其模塊列表中有一個錯誤模塊“ManagedPipelineHandler”

 

解決方法:

導致這種問題的原因是ASP.net沒有成功注冊到IIS中,很有可能是先安裝.Net Framework,然后安裝IIS

 管用員權限進入cmd命令提示符界面,執行命令"C:\Windows\Microsoft.NET\Framework\v4.0.30319",

運行:

aspnet_regiis.exe -i

 

問題6:

 

 

解決方法:

這個問題網上的解決方法很多,我試了一下都沒用。

我的解決辦法是,參照發布的時候,重新在IIS中新建了一個網站,選擇了相應的路徑什么的,就好了。


免責聲明!

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



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