自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Windows Azure中實(shí)現(xiàn)和調(diào)試一個WCF服務(wù)(上)

原創(chuàng)
云計算
為了把在Windows Azure中運(yùn)行的,使用強(qiáng)大的WCF框架的服務(wù)暴露出來,Windows Azure提供了一個WCF角色。無論在哪個框架和平臺上構(gòu)建復(fù)雜的,具有高度可擴(kuò)展性的系統(tǒng),通過它們的功能進(jìn)行邏輯分組,針對那些分組來抽象代碼,并且分別執(zhí)行它們,都是一種簡單而高效的擴(kuò)展性策略。

為了把在Windows Azure中運(yùn)行的,使用強(qiáng)大的WCF框架的服務(wù)暴露出來,Windows Azure提供了一個WCF角色。無論在哪個框架和平臺上構(gòu)建復(fù)雜的,具有高度可擴(kuò)展性的系統(tǒng),通過它們的功能進(jìn)行邏輯分組,針對那些分組來抽象代碼,并且分別執(zhí)行它們,都是一種簡單而高效的擴(kuò)展性策略。你應(yīng)該把用來“繪制圖形”的可執(zhí)行代碼分成一組,然后找出圖形繪制服務(wù)的瓶頸,通過增加負(fù)責(zé)這個任務(wù)的Windows Azure實(shí)例的數(shù)量,你可以集中更多的計算能力來完成這個任務(wù)。

Windows Communication Foundation (WCF)是一種被廣泛使用的客戶端/服務(wù)端通信技術(shù),它是由微軟提供的,而且已經(jīng)很成熟了。一個WCF服務(wù)可以和一個WCF客戶端進(jìn)行通信,也可以和采用了同樣的標(biāo)準(zhǔn)的其他框架的客戶端進(jìn)行通信。本文主要為您講述在Windows Azure中創(chuàng)建和使用WCF角色的基礎(chǔ)知識,以及如何診斷發(fā)生在WCF服務(wù)內(nèi)部的錯誤。除此之外,本文還會為您講述在把Windows Azure的WCF跟蹤信息記錄到日志中的過程中,會遇到哪些已知的問題,以及這些問題的基本解決方法。另外,我們會提供相關(guān)的源代碼。

首先,我們必須創(chuàng)建一個全新的,使用Windows Azure SDK v1.3的Windows Azure項(xiàng)目,然后給它添加一個新的WCF角色。這個角色是由Visual Studio來創(chuàng)建的,它帶有很多有用的基礎(chǔ)設(shè)置和服務(wù)。值得注意的是,創(chuàng)建一個WCF服務(wù)并不是***的方法,你也可以使用Web角色或者Worker角色(甚至是一個VM角色?。5?,如果我們創(chuàng)建了一個使用WCF角色模板的服務(wù),事情會變得更加容易一些。另外,這一點(diǎn)也應(yīng)該引起我們的注意:使用WCF角色和使用Web角色沒有什么本質(zhì)區(qū)別,如果你使用的是Worker角色,那么情況就有所不同了。區(qū)別在于WCF角色和Web角色都是在IIS中托管WCF服務(wù)的,而使用Worker角色的時候,你只能在Windows應(yīng)用程序中自托管。這方面的具體信息,可以參考:http://msdn.microsoft.com/en-us/library/ms730158.aspx。

讓我們回到我們手頭的任務(wù)上來,為我們的項(xiàng)目創(chuàng)建一個“WCF Service Web Role”:

這會創(chuàng)建一個Web應(yīng)用程序(類似于Web角色),而且還會添加一些基礎(chǔ)的代碼文件。

這些是一個非?;A(chǔ)的WCF服務(wù)的基本組成部分,現(xiàn)在我來詳細(xì)說明一下它們都是做什么的。如果你已經(jīng)是一個WCF方面的老手了,可以跳過這個小節(jié)!

AzureLocalStorageTraceListener.cs:

這是“XmlWriterTraceListener”的一個派生類,“XmlWriterTraceListener”類的主要功能是收集“System.Diagnostics.Trace”類寫入的日志信息,然后通過Xml的形式來輸出它們。這是一個具有特定用途的“XmlWriterTraceListener”——它總是把基于XML的Trace信息寫入到LocalStorage的一個區(qū)域中。Windows Azure允許一個角色對磁盤的可寫區(qū)域進(jìn)行寫入操作。用這種特定的方式可以寫入文件路徑,以便于讓W(xué)indows Azure Diagnostics框架知道從什么地方選擇文件。Windows Azure Diagnostics框架必須要把它們移動到一個角色實(shí)例的本地實(shí)例中,以便于它們可以跨實(shí)例來使用。

IService1.cs:

這個文件包含一個接口和一個類。它們都很有意思,因?yàn)樗鼈兊亩x都是用特性(attribute)來修飾的。“IService1.cs”中的接口是用特性[ServiceContract]來修飾的——這意味著在這個應(yīng)用程序中,這個接口定義了一個服務(wù)契約。它可以用于WCF,表示客戶端和服務(wù)端都同意可以在這個服務(wù)上使用某些方法,在內(nèi)部,這些方法是用OperationContract]來修飾的。IService1.cs中的類是用特性[DataContract]來修飾的,它的成員是用特性[DataMember]來修飾的——這為指定客戶端和服務(wù)端都同意的,可以在客戶端和服務(wù)端之間進(jìn)行傳遞的消息的細(xì)節(jié)提供了一種方法。

Service1.svc(和展開它后看到的Service1.svc.cs):

這個類實(shí)現(xiàn)了上面那個用“IService1”來聲明的接口,這意味著,當(dāng)你連接到一個WCF服務(wù)(這個服務(wù)使用由“Service1.svc”實(shí)現(xiàn)的IService1)的時候,這些才是真正的要執(zhí)行的邏輯。請注意,在這個例子中,針對“Service1.svc”的路徑總是提供這樣的功能,但是在高級的WCF配置中,你可以把.svc替換掉,使用一個可以獲得更大靈活性的配置。

Web.config:

這是Web應(yīng)用程序的配置文件。值得注意的是,默認(rèn)情況下,“AzureLocalStorageTraceListener”是被禁用的,“system.serviceModel”節(jié)點(diǎn)定義了我們可以使用“httpGet”(一個比較基礎(chǔ)的Web請求)來獲取服務(wù)的元數(shù)據(jù)。后面這種設(shè)置很有用,因?yàn)樵陂_發(fā)過程中,我們可以使用一個瀏覽器來瀏覽這個服務(wù)。

WebRole.cs:

這是“RoleEntryPoint”的一個派生類,它控制著WCF角色在Windows Azure中的啟動方式。“OnStart”方法用于配置Windows Azure診斷信息是如何遷移到blob storage中的——它每分鐘都會按照在“AzureLocalStorageTraceListener”中配置的路徑做一次這樣的工作。注意,本地存儲器應(yīng)該這樣來定義:

<LocalStorage name=”WcfRole.svclog” sizeInMB=”1000″ cleanOnRoleRecycle=”false” />

原文名:Implementing and Debugging a WCF Service in Windows Azure 作者:Andy

本文接《在Windows Azure中實(shí)現(xiàn)和調(diào)試一個WCF服務(wù)(中)》和《在Windows Azure中實(shí)現(xiàn)和調(diào)試一個WCF服務(wù)(下)》

【本文乃51CTO精選譯文,轉(zhuǎn)載請標(biāo)明出處!】 

【編輯推薦】 

  1. 微軟公布云計算平臺Azure收費(fèi)模式細(xì)節(jié)
  2. 云計算意在長遠(yuǎn),微軟云計算服務(wù)Windows Azure已經(jīng)啟用
  3. 技術(shù)透析:Windows Azure Platform框架與組成
  4. 微軟Windows Azure Platform技術(shù)解析
  5. 走近微軟云:SQL Server到Azure數(shù)據(jù)同步
  6. 當(dāng)微軟Azure遭遇亞馬遜EC2:五大關(guān)鍵區(qū)別
  7. Windows Azure云計算平臺新增五大功能
  8. 云計算前途光明 Azure用戶數(shù)突破31000
  9. 如何把應(yīng)用程序部署到Windows Azure中

 

責(zé)任編輯:王勇 來源: 來源:51CTO
相關(guān)推薦

2011-03-15 16:07:33

Windows AzuWCF

2011-03-15 16:12:00

Windows AzuWCF

2011-03-22 09:45:56

Windows AzuSilverlight

2010-11-25 10:05:22

Visual StudSilverlightWCF

2011-03-22 10:03:55

Windows AzuSilverlight

2011-03-24 13:02:35

WCF服務(wù)角色Azure

2011-03-14 15:10:10

AzureFacebook

2010-05-28 09:00:23

WCFAzure

2011-03-14 14:47:50

2011-03-10 10:45:47

Azure“Hello Worl

2013-07-02 10:52:42

SUSELinuxWindows Azu

2013-07-02 11:34:46

SUSELinuxWindows Azu

2009-06-25 11:18:20

Silverlight

2011-03-14 15:14:10

AzureFacebook營銷式應(yīng)用程序

2020-12-16 14:29:40

終端開發(fā)shell

2011-03-15 19:45:27

Windows Azu

2022-05-22 13:55:30

Go 語言

2021-01-04 09:12:31

集合變量

2022-11-06 19:17:39

LinuxVentoy

2016-08-11 15:03:36

Redis Sentigossip protagreement p
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號