(0) exportieren Drucken
Alle erweitern

Vorgehensweise: Hosten eines Diensts unter Windows Azure, der auf Service Bus zugreift

Letzte Aktualisierung: September 2014

Das Erstellen einer Dienstanwendung, die unter ausgeführt wird, folgt den Programmiermustern für eine - und eine traditionelle Microsoft Azure Service Bus-Anwendung: Sie definieren und implementieren den Dienstvertrag, konfigurieren den Endpunkt, erstellen die Anmeldeinformationen und starten dann den Host. Wenn Sie fertig sind, beenden Sie den Host. Beachten Sie jedoch, dass beim Erstellen eines Diensts in zwei wichtige Punkte zu berücksichtigen sind:

  • speichert keine Servicebus- und Zugriffssteuerung-Konfigurationsinformationen in der Datei Machine.config.

    Da das SDK nicht installiert, weist die Datei Machine.config auf einem Computer mit keine Informationen zu Servicebus-Bindungen oder -Endpunkten auf. Wie bereits ausgeführt, verhindern -Sicherheitseinschränkungen, dass Sie die -Datei Machine.config ändern können. Es stehen jedoch zwei Optionen zur Verfügung, um Servicebus- und Zugriffssteuerung-Konfigurationsinformationen für Ihre Servicebus-Anwendungen bereitzustellen.

    1. Die empfohlene Lösung besteht in der Verwendung von Servicebus-APIs, um Ihre Anwendung programmgesteuert zu konfigurieren. Auch wenn Sie beispielsweise Namen- und Kennwortinformationen in der Datei App.config speichern können, legen Sie alle Relaybindungskonfigurationen programmgesteuert fest. Themenbereich zum programmgesteuerten Festlegen der Konfiguration finden Sie unter Konfigurieren eines WCF-Diensts für die Registrierung bei Service Bus.

    2. Die zweite Lösung besteht im manuellen Ändern der Datei App.config für Ihre Anwendung, indem Sie die relevanten Informationen hinzufügen. Nachdem dies erfolgt ist, können Sie die Datei App.config zum Konfigurieren von Bindungen und Endpunkten verwenden. Zeigen Sie zu diesem Zweck die Datei Machine.config auf einem Computer an, auf dem das SDK installiert ist, suchen Sie die Konfigurationsinformationen, die sich auf beziehen, und kopieren Sie diese dann in Ihre Datei App.config. Auf diese Weise können Sie die Datei App.config zwar für den Hostdienst verwenden, das Testen Ihres Codes ist jedoch schwierig: Es treten ggf. Duplikatprobleme mit der Datei Machine.config auf dem lokalen Testcomputer auf, auf dem bereits das SDK installiert ist. Aus diesem Grund wird empfohlen, die erstgenannte Option zu verwenden und alle Einstellungen programmgesteuert festzulegen.

  • Servicebus muss Autorisierung mit voller Vertrauenswürdigkeit verwenden, um unter ausgeführt werden zu können.

    Wie bei allen anderen Servicebus-Anwendungen müssen Sie sicherstellen, dass das Betriebssystem mit Autorisierung mit voller Vertrauenswürdigkeit ausgeführt wird. Diese Einstellung kann in der Datei ServiceDefinition.csdef für Ihr -Projekt mithilfe des folgenden Verfahrens festgelegt werden.

  1. Fügen Sie im Projektmappen-Explorer unter dem Knoten WorkerRole oder WebRole (abhängig vom Speicherort Ihres Codes) dem -Projekt die Assembly Microsoft.ServiceBus.dll als Verweis hinzu.

    Dieser Schritt ist die Standardvorgehensweise zum Hinzufügen eines Verweises zu einer Assembly.

  2. Klicken Sie im Ordner Reference mit der rechten Maustaste auf Microsoft.ServiceBus. Klicken Sie dann auf Eigenschaften.

  3. Legen Sie im Dialogfeld Eigenschaften die Option Lokale Kopie auf Wahr fest.

    Auf diese Weise wird sichergestellt, dass die Assembly Microsoft.ServiceBus.dll in den lokalen Pfad \bin kopiert wird und Ihrer Anwendung bei der Ausführung unter zur Verfügung steht.

  1. Legen Sie in der Datei ServiceDefinition.csdef in Ihrem Projekt das Feld enableNativeCodeExecution wie im folgenden Code gezeigt auf "true" fest. Ersetzen Sie "ApplicationNameHere" durch den Namen Ihrer Anwendung:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="ApplicationNameHere" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
      <WebRole name="WebRole" enableNativeCodeExecution="true">
        <InputEndpoints>
          <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
          <InputEndpoint name="HttpIn" protocol="http" port="80" />
        </InputEndpoints>
      </WebRole>
      <WorkerRole name="WorkerRole" enableNativeCodeExecution="true">
      </WorkerRole>
    </ServiceDefinition>
    
    

Anzeigen:
© 2014 Microsoft