上一遍我轉載了別人的的帖子,如何在VS2010中去創建WCF服務,這一遍我就詳細的講解下如何將WCF Service Library服務部署到IIS中去,供Web應用程序使用。
附上Demo:WCF完整的一個Demo(WCF創建、部署、調用).rar
- 創建好一個WCF Service Library(具體可以參考我的上一遍文章VS2010中如何創建一個WCF)
- 創建一個Web Application(准備放到IIS中去的就是這個Application了)讓我們一起來從頭開始做一遍吧。

第二步,給WebServicePerson這個項目添加一個.SVC的文件,取名叫做“PersonService”
接下來呢,將創建項目時自帶的文件夾和.aspx文件都刪除掉(如下圖)然后打開 PersonService.svc 文件,我們需要將文件修改如下。
<%@ ServiceHost Language="C#" Debug="true" Service="WCFService_Library2010.PersonService" %>
Service="WCFService_Library2010.PersonService"是需要自己定義的,服務指向那個WCF的服務庫
第四步,經過上面三步的操作項目基本已成成型了,接下來只需要最后一步了,那就是配置Web.Config. 自己手寫去配置Web.config是非常痛苦的,所幸微軟給我我們提供了非常便捷的配置功能“Edit WCF Configuration”
我們接着往下看.....
進入配置界面后,我們發現Services下面並沒有任何節點,需要我們自己去新建一個,可以點擊“Create a New Service...”去創建
去選擇,我們剛剛創建的 WCF Service Library的服務。
一路next往下。
創建完之后,我們會得到這樣的一個界面。
這一步很重要的,因為之前我們已經添加了一個.svc的文件PersonService並且已經配置好了Service的內容,所以系統自動已經在Service Behaviors下面創建了一個PersonService的節點。
此時我們只需要填寫一個name就可以了(如下圖 )
回到Services 選中剛剛創建的name名稱。
最后,最關鍵的一步就是要記得“保存”。。不然我們剛做的所有配置都白費了。
最后去運行PersonService.svc,右擊 → 在瀏覽器中查看,一切大功告成了。此時你就可以將這個WebAppliction部署到IIS中去了,供Web項目所使用。
至於如何在項目里調用WebService,上圖中其實已經有詳細的說明了並且給出調用的代碼了,我就不多說了。
附上代碼:
<asp:TextBox ID="TextAge" runat="server"></asp:TextBox>
<asp:TextBox ID="TextName" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="新增" onclick="Button1_Click" />
</p>
<p>
<asp:Label ID="LabInfo" runat="server" Text=""></asp:Label>
<asp:Button ID="Button2" runat="server" Text="獲取" onclick="Button2_Click"
/>
</p>
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebPerson.PersonService; // 這里是引用webservice
namespace WebPerson
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
}
protected void Button1_Click( object sender, EventArgs e)
{
PersonServiceClient client = new PersonServiceClient();
client.AddPerson( new Person() { Age=Convert.ToInt32(TextAge.Text), Name=TextName.Text });
client.Close();
}
protected void Button2_Click( object sender, EventArgs e)
{
LabInfo.Text = "";
PersonServiceClient client = new PersonServiceClient();
Person [] personList = client.GetAllPersons();
foreach (Person model in personList)
{
LabInfo.Text += model.Age + " , " + model.Id + " , " + model.Name + " <br /> ";
}
}
}
}