Szolgáltatás hibakeresési viselkedése

A ServiceDebug-minta bemutatja, hogyan konfigurálhatók a szolgáltatás hibakeresési viselkedési beállításai. A minta a Kezdő lépések-en alapul, amely megvalósítja a ICalculator szolgáltatásszerződést. Ez a minta explicit módon határozza meg a szolgáltatás hibakeresési viselkedését a konfigurációs fájlban. A kódban is imperatív módon elvégezhető.

Ebben a mintában az ügyfél egy konzolalkalmazás (.exe), és a szolgáltatást az Internet Information Services (IIS) üzemelteti.

Megjegyzés:

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

A kiszolgáló Web.config fájlja határozza meg a szolgáltatás hibakeresési viselkedését a súgóoldal és a kivételkezelés engedélyezéséhez az alábbi példában látható módon.

<behaviors>
     <serviceBehaviors>
         <behavior name="CalculatorServiceBehavior">
         <!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
         <!-- Please set this to false when deploying -->
             <serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
         </behavior>
     </serviceBehaviors>
</behaviors>

<A serviceDebug> az a konfigurációs elem, amely lehetővé teszi a szolgáltatás hibakeresési viselkedési tulajdonságainak módosítását. A felhasználó a következő módon módosíthatja ezt a viselkedést:

  • Ezáltal a szolgáltatás vissza tudja adni azokat a kivételeket, amelyeket az alkalmazáskód dob, akkor is, ha a kivétel nincs deklarálva a FaultContractAttribute használatával. Ez úgy történik, hogy a includeExceptionDetailInFaults beállítását true-re állítjuk be. Ez a beállítás akkor hasznos, ha hibakeresést folytat olyan esetekben, amikor a kiszolgáló váratlan kivételt jelez.

    Fontos

    Ennek a beállításnak az aktiválása éles környezetben nem biztonságos. Előfordulhat, hogy egy váratlan kiszolgálói kivétel olyan információval rendelkezik, amely nem az ügyfél számára készült, ezért a beállítás includeExceptionDetailsInFaultstrue adatszivárgást okozhat.

  • A <serviceDebug> lehetővé teszi a felhasználó számára a súgóoldal engedélyezését vagy letiltását is. Az egyes szolgáltatások opcionálisan közzétehetnek egy súgólapot, amely a szolgáltatással kapcsolatos információkat tartalmazza, beleértve a végpontot is a szolgáltatás WSDL-jének lekéréséhez. Ez engedélyezhető, ha a httpHelpPageEnabled értéket true-re állítjuk. Ez lehetővé teszi, hogy a súgóoldal GET kérésre vissza legyen adva a szolgáltatás alapcímére. Ezt a címet egy másik attribútum beállításával módosíthatja httpHelpPageUrl. Ezt http helyett HTTPS használatával teheti biztonságossá. Ez megtehető httpsHelpPageEnabled és httpsHelpPageUrl beállításával.

A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. Az első három műveletnek (Hozzáadás, Kivonás és Szorzás) sikeresnek kell lennie. Az utolsó művelet ("osztás") nullával történő osztással meghiúsul.

A példa beállítása, elkészítése és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.

  2. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.

  3. Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.