轉自:http://blog.csdn.net/yapingxin/article/details/7331375 api
不少人在論壇裏說,在Visual Studio 2010中不能建立「ASP.Net Web Service」這種project了,下面跟帖者云云,有的說這是由於微軟已經將Web Service整合進WCF,也有的提出一種先將.Net Framework Target設置爲3.5的一種很「Tricky」的做法,其實這些說法是不許確的。微軟確實用WCF整合了Web Service,但並不等於說微軟不許備讓你們在Visual Studio裏面建立傳統的Web Service了。其實正確的作法很簡單,你們一看就恍然大悟了。ide
第一步:建立一個「ASP.Net Empty Web Application」項目this
第二步:在項目中添加「Web Service」新項目編碼
第一步以後,Visual Studio 2010會建立一個僅含一個站點配製文件(Web.config)的空站點,其他的什麼也沒有。
spa
咱們在Visual Studio 2010的Solution Explorer中,選中當前的這個project,添加新項目(右鍵菜單:Add --> New Item),選擇「Web Service」這種類型:.net
看到這裏讀者應該就恍然大悟了吧。orm
好,咱們繼續:blog
第三步:編碼、運行教程
添加完Web Service這種new item以後,Visual Studio已經替咱們寫了個示範的Web方法了:ip
[csharp] view plaincopyprint?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace sitedemo.Services
{
/// <summary>
/// Summary description for CalculateService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class CalculateService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
直接Press F5就能夠看到結果:
而後咱們改寫這段代碼,添加咱們本身的方法進去:
[csharp] view plaincopyprint?
using System.Web.Services;
namespace sitedemo.Services
{
/// <summary>
/// Summary description for CalculateService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
public class CalculateService : WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public int Add(int x, int y)
{
return x + y;
}
}
}
運行:
怎麼樣,是否是很簡單?
總結
如今咱們再回過頭來看看,從VS2010以前版本的舊的建立Web Service的方式,到如今新的變化,Visual Studio改動了什麼?
手頭的機器沒有裝舊版的Visual Studio,我就現從網上抓一張教程裏的截圖吧,讓咱們看看舊版的Visual Studio裏面你們建立Web Service時建立新項目的截圖:
不少人說在Visual Studio 2010裏面沒法建立Web Service,他們大概是在尋找上面截圖中的這種「ASP.Net Web Service」項目吧。
如今再回過頭來看看,其實微軟在Visual Studio 2010裏面做了一個至關合理(make sense)的改變。
Web Service並不能單獨存在,它必須Host在一個Web Site/Web Application上面。因此,在一個Web Site/Web Application裏面,經過Add new item添加一個Web Service,這纔是最合理的做法。