預設服務行為

這個範例會示範如何設定服務行為設定。此範例是以實作 ICalculator 服務合約的使用者入門範例為基礎。這個範例會使用 ServiceBehaviorAttributeOperationBehaviorAttribute 屬性明確地定義服務行為與作業行為。您可以在組態檔中設定行為,也可以在程式碼中以命令方式設定 (如這個範例所示)。

在這個範例中,用戶端是主控台應用程式 (.exe),而服務則是由網際網路資訊服務 (IIS) 所裝載。

ms751438.note(zh-tw,VS.90).gif注意:
此範例的安裝程序與建置指示位於本主題的結尾。

此服務類別會使用 ServiceBehaviorAttributeOperationBehaviorAttribute 指定行為,如下列程式碼範例所示。所有指定的值都是預設值。

[ServiceBehavior(
    AutomaticSessionShutdown=true,
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    IncludeExceptionDetailInFaults=false,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
    [OperationBehavior(
        TransactionAutoComplete=true,
        TransactionScopeRequired=false,
        Impersonation=ImpersonationOption.NotAllowed)]
    public double Add(double n1, double n2)
    {
        System.Threading.Thread.Sleep(1600);
        return n1 + n2;
    }
    ...
}

服務行為是以 ServiceBehaviorAttribute 屬性指定。下表會介紹其中一些行為。

服務行為 描述

AutomaticSessionShutdown

在用戶端要求時自動關閉工作階段。

ConcurrencyMode

指定每個服務執行個體的並行模式。

InstanceContextMode

指定執行個體內容模式。

UseSynchronizationContext

判定是否要使用所提供的同步化內容,如果有設定的話。當您想要控制是否要在 Windows Form 應用程式中使用 WindowsFormsSynchronizationContext 時,便可使用這項功能。

IncludeExceptionDetailInFaults

判定一般未處理的執行例外狀況是否要轉換為 Fault<string>,並且當作錯誤訊息傳送。

TransactionIsolationLevel

指定交易的隔離等級。

ValidateMustUnderstand

判斷未預期的訊息標頭是否會造成錯誤狀況。

作業行為是以 OperationBehaviorAttribute 屬性所指定。下表會介紹其中一些行為。

作業行為 說明

TransactionAutoComplete

判定服務作業完成是否會認可目前交易。

TransactionScopeRequired

判定服務作業是否會登記在用戶端流動的交易中。

Impersonation

判定服務作業是否會模擬呼叫者身分識別。

ReleaseInstanceMode

判定服務執行個體是否會在服務作業呼叫的開始與結束時回收。

當您執行範例時,作業要求和回應會顯示在用戶端主控台視窗中。呼叫之間發生延遲是因為在服務作業中呼叫 System.Threading.Thread.Sleep()。其他行為範例會更詳細說明這些行為。在用戶端視窗中按下 ENTER 鍵,即可關閉用戶端。

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

若要設定、建置及執行範例

  1. 請確定您已執行 Windows Communication Foundation 範例的單次安裝程序

  2. 若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例中的指示。

  3. 若要在單一或跨電腦的組態中執行本範例,請遵循執行 Windows Communication Foundation 範例中的指示。

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.