Megosztás:


Self-Host

A SelfHost-minta bemutatja, hogyan implementálhat saját üzemeltetésű szolgáltatást egy konzolalkalmazásban. Ez a minta az első lépéseken alapul. Az szolgáltatáskonfigurációs fájl át lett nevezve Web.config-ről App.config-re, és módosítva lett úgy, hogy egy alapcímet konfiguráljon, amelyet a gazdagép használ. A szolgáltatás forráskódját úgy módosítottuk, hogy egy statikus Main függvényt implementáljon, amely létrehoz és megnyitja a konfigurált alapcímet biztosító szolgáltatás állomást. A szolgáltatás implementációját úgy módosítottuk, hogy az egyes műveletek kimenetét a konzolra írja. Az ügyfél nincs módosítva, kivéve a szolgáltatás megfelelő végpontcímének konfigurálását.

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 minta egy statikus main függvényt implementál, hogy létrehozzon egy ServiceHost a megadott CalculatorService típushoz, ahogyan az az alábbi mintakódban is látható.

// Host the service within this EXE console application.
public static void Main()
{
    // Create a ServiceHost for the CalculatorService type.
    using (ServiceHost serviceHost =
           new ServiceHost(typeof(CalculatorService)))
    {
        // Open the ServiceHost to create listeners
        // and start listening for messages.
        serviceHost.Open();

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();
    }
}

Ha egy szolgáltatást az Internet Information Services (IIS) vagy a Windows Folyamataktiválási szolgáltatás (WAS) üzemeltet, a szolgáltatás alapcímét az üzemeltetési környezet biztosítja. A saját üzemeltetésű esetben saját maga kell megadnia az alapcímet. Ezt a következő mintakonfigurációban bemutatott módon a add gyermekeként a <, amely a > gyermeke, használatával kell elvégezni.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
    </baseAddresses>
  </host>
  ...
</service>

A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek a szolgáltatás és az ügyfélkonzol ablakaiban is. A szolgáltatás és az ügyfél leállításához nyomja le az ENTER billentyűt az egyes konzolablakokban.

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 számítógépközi konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.

Lásd még