成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Windows Azure中實現和調試一個WCF服務(中)

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

本文接《在Windows Azure中實現和調試一個WCF服務(上)》和《在Windows Azure中實現和調試一個WCF服務(下)》

做一些改動

如果你跳轉到了***的總結文件上,那么歡迎回來。

現在我們會對這個基礎項目做一些改動,以便于我們可以告訴大家,如何擴展這個解決方案的,如何中斷它,以及如何找出它中斷的原因。

首先,我會給這個服務添加一個新的方法,以便于我們可以看到如何開始擴展這個服務。定位到“IService1”接口,然后添加下面這些代碼:

[OperationContract]       
float Divide(float dividend, float divisor);

現在,在這個接口上,我們擁有了一個新方法,我們必須要實現他。打開“Service1.svc.cs”,然后添加下面這些代碼:

public float Divide(float dividend, float divisor) 

{

             if (divisor == 0F)

            {

                        throw new DivideByZeroException();    

            }

            return dividend / divisor;
}

現在,我們擁有了一個新方法,我們終于可以讓一些事情失敗了!

在Visual Studio中運行它(或者debug),然后你會看到下面這個頁面:

雖然這可以保證這個WCF服務是可以正常工作的,但是我們無法使用瀏覽器來調用它。取而代之,我們會求助于一個簡單的,可以和WCF進行通信的Worker角色客戶端。

首先,向這個解決方案中添加一個新的項目,在圖中那個節點上右擊:

然后,這個Worker角色需要創建一個可以和我們前面創建的WCF服務進行通信的客戶端。要完成這個工作,需要在“References”上右擊,然后添加一個“Service Reference”:

然后,它可以讓我們選擇是添加一個現有的服務,還是添加是一個解決方案中的服務。目前來說,我們使用解決方案內部的WCF服務。

                try

              {

                    for (int i = 100; i >= 0; i--)

                    {

                        Trace.WriteLine(service1.Divide(100F, (float)i));

                    }

                }

                catch (Exception ex)

                {

                    Trace.TraceError(ex.ToString());

                }

實際上,綁定到一個現有Azure實例會更加容易一些——這是因為在本地綁定你的解決方案可能會獲得錯誤的端口號(本地的IIS端口而不是Windows Azure Emulator運行的端口——如果你沒有小心地關閉掉你的調試會話,那么這個Windows Azure Emulator端口可能會改變)。如下圖所示,當查找一個本地解決方案的時候,獲得了一個錯誤的端口號:
 

為了糾正這個問題,可以用你為WCF角色手工配置的端口替換掉這個端口號。你可以在“ServiceDefinition.csdef”文件中配置這個端口號,或者也可以通過在WCF角色上右擊,然后打開它的屬性頁的方式來達到這個目的,在這個例子中,我就是這樣做的:

注意,接下來你必須修改<client><endpoint>的地址屬性,讓它的端口號和上面配置的端口號相匹配。任何時候,Compute Emulator都不會正確地關閉,你必須重啟它們,以確保它們是匹配的,否則,你會得到一個異常,告訴你在WCF客戶端配置中指定的端口沒有端點(endpoint)在監聽。

為了成功地調用這個WCF服務,我們需要給Worker角色添加一些代碼。我們簡單地從100迭代到0,以100F作為參數調用Divide方法,***,在迭代到0的時候,我們的代碼會故意地拋出一個“DivideByZeroException”異常。

                try

                {

                    for (int i = 100; i >= 0; i--)

                    {

                        Trace.WriteLine(service1.Divide(100F, (float)i));

                    }

                }

                catch (Exception ex)

                {

                    Trace.TraceError(ex.ToString());

                }

客戶端的WCF通信輸出會收到一個WCF異常,但是不會包含一些細節。

snip...

10

11.11111

12.5

14.28571

16.66667

20

25

33.33333

50

100

[WaWorkerHost.exe] System.ServiceModel.FaultException: The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.

Server stack trace:

at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)

at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)

at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)

at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:

at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

at WcfClientRole.AzureWcfBasic.IService1.Divide(Single dividend, Single divisor)

at WcfClientRole.AzureWcfBasic.Service1Client.Divide(Single dividend, Single divisor) in c:\dev\Blog\WCFBasic\WcfClientRole\Service References\AzureWcfBasic\Reference.cs:line 119

at WcfClientRole.WorkerRole.Run() in c:\dev\Blog\WCFBasic\WcfClientRole\WorkerRole.cs:line 31

從理論上來說,我們可以打開異常信息的細節,但是這不是一種安全的做法。為了接下來可以調試這個信息,我們需要看一看剛才配置過的Windows Azure Diagnostics。

本文接《在Windows Azure中實現和調試一個WCF服務(上)》和《在Windows Azure中實現和調試一個WCF服務(下)》

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

【本文乃51CTO精選譯文,轉載請標明出處!】
 

【編輯推薦】 

  1. 微軟公布云計算平臺Azure收費模式細節
  2. 云計算意在長遠,微軟云計算服務Windows Azure已經啟用
  3. 技術透析:Windows Azure Platform框架與組成
  4. 微軟Windows Azure Platform技術解析
  5. 走近微軟云:SQL Server到Azure數據同步
  6. 當微軟Azure遭遇亞馬遜EC2:五大關鍵區別
  7. Windows Azure云計算平臺新增五大功能
  8. 云計算前途光明 Azure用戶數突破31000
  9. 如何把應用程序部署到Windows Azure中

 

 

責任編輯:王勇 來源: 來源:51CTO
相關推薦

2011-03-15 15:43:39

Windows AzuWCF

2011-03-15 16:12:00

Windows AzuWCF

2010-11-25 10:05:22

Visual StudSilverlightWCF

2011-03-22 09:45:56

Windows AzuSilverlight

2011-03-22 10:03:55

Windows AzuSilverlight

2011-03-24 13:02:35

WCF服務角色Azure

2011-03-10 10:45:47

Azure“Hello Worl

2009-06-25 11:18:20

Silverlight

2020-12-16 14:29:40

終端開發shell

2022-05-22 13:55:30

Go 語言

2013-05-24 08:56:46

Windows Azu微軟云計算平臺Windows Ser

2021-01-04 09:12:31

集合變量

2009-12-21 14:58:57

WCF用戶密碼認證

2012-04-20 10:05:16

WCF

2009-03-30 15:52:24

Windows Emb

2011-03-14 15:10:10

AzureFacebook

2010-02-25 17:22:39

WCF服務行為

2013-03-27 09:55:17

微軟Windows AzuHadoop

2019-11-27 13:50:35

bauh軟件包應用

2011-03-15 19:45:27

Windows Azu
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲美女av网站 | 成人深夜福利 | 久久久久久免费毛片精品 | 久久久精彩视频 | 久草福利 | 97在线播放| 免费成人在线网 | 在线免费看黄 | 午夜精品一区二区三区免费视频 | 国内自拍偷拍 | 欧美中文字幕在线 | 一区视频 | 久久久国产精品 | 在线精品一区 | 亚洲一区二区三区免费在线观看 | 欧美亚洲视频在线观看 | 精品日韩 | 美女视频. | 欧美日韩国产一区二区三区 | 久久久久国产一区二区三区 | 在线看av的网址 | 欧美精品一区二区在线观看 | 欧美精品一区在线观看 | 国户精品久久久久久久久久久不卡 | 欧美高清成人 | 国产福利在线视频 | 成人免费在线播放视频 | 99久久精品免费看国产四区 | 国产成人精品999在线观看 | 黑人巨大精品 | 在线观看三级av | 一区二区福利视频 | 成人在线视频网 | 91视频免费黄 | 亚洲国产精品一区二区三区 | 久久9精品 | 成人国产精品久久 | 国产在线视频一区二区 | 热re99久久精品国99热观看 | 日本精品在线观看 | 欧美亚洲成人网 |