Roberto Brunetti

Developing in the cloud

.NET Programming

Archives

Service Bus: November CTP Code

Con l’arrivo della CTP di Novembre (di cui avevo parlato quì) occorre modificare anche il codice rispetto alle CTP precedenti: il codice “vecchio” reggeva da un anno esatto.

Le modifiche rispetto alle demo che ho presentato a Devcon 2009, al Remix o al corso in Microsoft di settimana scorsa (lo avevamo anticipato durante il corso, ma le modifiche agli esempi da un giorno al successivo sono sempre “traumatici”) non sono molte, ma riguardano l’autenticazione e di conseguenza sono di vitale importanza anche per effettuare la prova più semplice.

Per prima cosa occorre rimuovere il behavior dalla configurazione. Nei miei esempi questa sezione sparisce dal da config del servizio che da quello del client

  <behavior name="transportClientBehavior0">
    <!--
      Specify
        - CardSpace (default)
        - UserNamePassword
        - X509Certificate
        - AutomaticRenewal (tgt)
        - FederationViaCardSpace
      for credentialType.
    -->
    <transportClientEndpointBehavior credentialType="UserNamePassword">
      <clientCredentials>
        <userNamePassword userName="devleaprob"
                          password="provapippo" />
      </clientCredentials>
    </transportClientEndpointBehavior>
  </behavior>
</endpointBehaviors>

Ho lasciato anche la password reale del mio account di test in quanto non più valide dopo le ultime modifiche al servizio.

Prima di costruire l’uri del servizio occorre impostare il nome della solution come sempre, solo che adesso il termine Solution è sparito e ha lasciato il posto a Service Namespace.

Il nuovo meccanismo di autenticazione prevede l’utilizzo di isserName e issuerKey: entrambi questi valori si ottengono durante la creazione di un Service Namespace (ripeto: ex-Solution).

Nel mio caso ho ricreato interamente il tutto visto che comunque i dati degli scope dell’Access Control non sono stati migrati come segnalato nel mio post precedente: ho preferito ripartire da zero soprattutto dopo le mille prove che avevo fatto in questo anno passato. Per le applicazioni reali non ho avuto problemi in quanto è stato sufficiente stoppare per un attimo il servizio e ricreare i namespace.

Queste gli screenshot di creazione del nuovo Service Namespace:

image

Creato il nuovo namespace, viene attivato il tutto dietro le quinte: operazione da 30 secondi circa. Si ottiene questo:

image

Entrando nei dettagli si ottengono le informazioni di cui stavamo parlando.

In pratica il codice della parte “service” in ascolto dovrebbe essere simile al seguente (NON camblare nel codice i parametri di accesso)

Uri address = ServiceBusEnvironment.CreateServiceUri("sb", “devleaprob”, "EchoService");

TransportClientEndpointBehavior cred = new TransportClientEndpointBehavior();
cred.CredentialType = TransportClientCredentialType.SharedSecret;
cred.Credentials.SharedSecret.IssuerName = "issuer name";
cred.Credentials.SharedSecret.IssuerSecret = "chiave";

host = new ServiceHost(typeof(EchoService), address);

host.Open();

Lo stesso discorso si applica alla parte client.

Per quanto riguarda Access Control e relativi permessi, è sparita l’interfaccia di amministrazione e viste le modifiche anche molti strumenti esterni non girano più: occorre aspettare qualche giorno oppure usare lo strumento acm.exe a riga di comando.

Posted: nov 09 2009, 10:37 by rob | with 1 comment(s)
Filed under:

Comments

Roberto Brunetti said:

Dopo le modifiche che avevo segnalato per Service Bus e Access Control Service, ecco le aggiunte/modifiche

# novembre 17, 2009 11:54