對(duì)于WCF 服務(wù)增強(qiáng)
待測(cè)試系統(tǒng)由后端 WCF 服務(wù)和使用該 WCF 服務(wù)的 ASP.NET Web 應(yīng)用程序組成。WCF 服務(wù)非常靈活。創(chuàng)建 WCF 服務(wù)時(shí)的重要設(shè)計(jì)決策之一是如何為該服務(wù)選擇承載機(jī)制。主要有四種方法:使用 IIS、使用 Windows® Service、自承載以及使用 Windows Activation Service (WAS)。您可能很熟悉 IIS 和 Windows Service 的使用。
自承載涉及在 Microsoft® .NET Framework 托管的程序(如控制臺(tái)應(yīng)用程序)內(nèi)承載 WCF。WAS 是 Windows Server® 2008 和 Windows Vista® 中提供的一種新的進(jìn)程激活機(jī)制。每種 WCF 承載方案都有一些優(yōu)點(diǎn)和缺點(diǎn),具體取決于您的特定開(kāi)發(fā)方案。#t#
在本專欄的 WCF 服務(wù)示例中,我決定使用 IIS。此方案能充分利用 IIS 的一些優(yōu)勢(shì),例如內(nèi)置集成的管理和監(jiān)視、進(jìn)程回收、空閑關(guān)機(jī)和基于消息的激活等功能。
創(chuàng)建由 IIS 承載的 WCF 服務(wù)極為簡(jiǎn)單。首先我在 Windows Server 2003 上激發(fā) Visual Studio® 2008。請(qǐng)注意,如果您決定在運(yùn)行 Windows Server 2008 或 Windows Vista 的計(jì)算機(jī)上開(kāi)發(fā) WCF 服務(wù),在開(kāi)發(fā)期間必須處理與其增強(qiáng)的安全功能有關(guān)的一些問(wèn)題。但限于篇幅,我無(wú)法在此對(duì)這些問(wèn)題進(jìn)行說(shuō)明。
此處我只有一個(gè)單一操作 GetCryptoHash,但我也可以添加其他操作。請(qǐng)注意,[SeviceContract] 和 [OperationContract] 屬性將在后臺(tái)執(zhí)行大部分實(shí)際的代碼生成工作。接著,通過(guò)添加一個(gè)引用 System.Security.Cryptography 命名空間的 using 語(yǔ)句來(lái)編輯實(shí)現(xiàn)文件 CryptoHashService.cs,我編寫(xiě)了下列代碼:
- [ServiceContract]
- public interface ICryptoHashService
- {
- [OperationContract]
- string GetCryptoHash(string s);
- }