簡(jiǎn)明解析WCF開(kāi)源地帶
為每一個(gè)軟件行業(yè)的從業(yè)人員,無(wú)論是開(kāi)發(fā)人員、項(xiàng)目經(jīng)理、還是測(cè)試人員,也要不斷適應(yīng)這個(gè)趨勢(shì),我認(rèn)為WCF開(kāi)源只會(huì)使我們的工作更簡(jiǎn)單和更輕松,IDE 還進(jìn)行了重新設(shè)計(jì),從而向開(kāi)發(fā)人員提供對(duì).NET Framework 組件的直接訪問(wèn)。
準(zhǔn)備:
1、安裝.NET Framework 3.5 Beta 2。
開(kāi)始我安裝的是.NET Framework 3.5 June 2007 Community Technology Preview (CTP),走了一些彎路。
2、安裝Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF)。
3、檢查IIS是否有.svc到c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll的映射,如果沒(méi)有,建立映射,建立時(shí)取消“檢查文件是否存在”的選擇。
開(kāi)始:
1、在VS 2005中新建一個(gè)Web Site項(xiàng)目。
添加web.config,將 改為 。
2、在該項(xiàng)目中添加一個(gè)WCF Service,命名為CNBlogsWCFService.svc。 3、修改App_Code中CNBlogsWCFService.cs的代碼:
- CNBlogsWCFService.cs的代碼: [ServiceContract(Namespace = "http://www.cnblog.com/")]
- public interface ICNBlogsWCFService
- {
- [OperationContract]
- string AddToFavorites(string blogID, string postID);
- }
- public class CNBlogsWCFService : ICNBlogsWCFService
- {
- public string AddToFavorites(string blogID, string postID)
- {
- return string.Format("收藏成功!BlogID:{0},PostID:{1}", blogID, postID);
- }
- }
3\如果想進(jìn)一步了解WCF開(kāi)源的代碼,請(qǐng)參考:
Artech:[原創(chuàng)]我的WCF之旅(1):創(chuàng)建一個(gè)簡(jiǎn)單的WCF程序
Bruce Zhang:Windows Communication Foundation入門(mén)(Part Two)
4、修改CNBlogsWCFService.svc的代碼:
增加: Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory。
改為:
Factory是.NET Framework 3.5 Beta 2中增加的,而我們用的是Visual Studio 2005 extensions for .NET Framework 3.0,所以要手動(dòng)加上。
如果不通過(guò)Ajax調(diào)用WCF,需要設(shè)置為:Factory="System.ServiceModel.Web.WebServiceHostFactory"。#t#
5、開(kāi)始***次運(yùn)行,訪問(wèn)http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc,會(huì)出現(xiàn)如下頁(yè)面:
6、繼續(xù)運(yùn)行,訪問(wèn)http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc/js,你會(huì)看到自動(dòng)生成訪問(wèn)WCF的客戶端代理腳本。
7、OK!服務(wù)器端的WCF已經(jīng)準(zhǔn)備好了,下面就開(kāi)始客戶端的訪問(wèn)。
8、配置ASP.NET Ajax,在web.config中進(jìn)行設(shè)置WCF開(kāi)源:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
- <%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" Namespace="System.Web.UI" TagPrefix="asp" %>- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0