none
Why can not I put a second instance of my WebRole RRS feed

  • Question

  • Hi,

    I have a development problem for one of my clients.

    Let me explain:

    I have a project SSO: Yahoo, Gmail, Facebook, Windows Live and my own Identity provider (thinktecture), I make it in Visual Studio 2010, ASP.Net and Framework 4.0.

    I have another project that uses ACS and my project SSO. This second project is developed in Visual Studio 2012, Framework 4.5, MVC4.

    I put my project to production, everything works perfectly (SSO 2WebRole), when I try to spend my project MVC4 with 2WebRole, I get a runtime error that occurs randomly after a certain period of time.

    Everything works when my project has a single MVC4 WebRole.

    Is someone an idea or a line of research?

    Is this a problem of compatibility for my project SSO Framework 4.0 and not Framework 4.5 ?
    Is this a problem specific to MVC4?

    Can you help me ?

    Thanks in advance !

    mardi 22 janvier 2013 08:09

Réponses

  • Bonjour
    Pour vous aider on a besoin de un message d'erreur.
    Comme c'est un problème aléatoire je dirai que ce n’est pas un problème de compatibilité.
    Cordialement,
     


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    • Marqué comme réponse Florin Ciuca vendredi 25 janvier 2013 05:42
    mercredi 23 janvier 2013 12:03
  • Merci pour votre réponse.

    La question que je me pose est la suivante :

    Pourquoi est-ce que cela fonctionne parfaitement avec un seul WebRole ? Si le Request ne peut pas déchiffrer mon token, pourquoi il y arrive sur un seul WebRole?

    Concernant votre remarque, le certificat est placé directement sur Azure, dans mon fichier de configuration et dans la solution, donc est-ce vraiment nécessaire de devoir passer par le store certificat ?

    J'ai mis le site en production, en version de test pour certains clients afin d'apporter les modifications de design ou autre.

    Aucun soucis, mon propre provider fonctionne parfaitement mais lorsque je bascule sur 2 WebRole (en changeant la configuration directement du portail), la j'arrive à m'authentifier mais après un certain temps, à mon avis lorsqu'il passe sur un autre webRole, effectivement il n'arrive pas à décrypter mon "token" de sécurité, d'ou le message d'erreur. Ceci n'est qu'un raisonnement personnelle, je me trompe peu-être, mais cela me semble 'logique'.

    J'ai dans un premier temps pensé à la machineKey/ValidationKey qui pouvait poser problème, mais même en la spécifiant manuellement dans mon fichier de config, le problème persiste, néanmoins il est possible qu'Azure l'écrase derrière.

    J'ai peut être une idée que je compte tester ce lundi (un problème DPAPI pour l'encryption/decryption et donc override du FederationAuthentification dans mon global.asax).

    Je vous tiendrai au courant, si vous avez une autre piste, elle est là bienvenue.

    Merci sincèrement pour votre aide.

    Bien à vous.

    vendredi 25 janvier 2013 15:02
  • Bonjour, 

    Le problème est clôturé !

    J'ai discuté avec un ami, pour ne pas le nommer : Sandrino Di Mattia, qui m'a trouvé LA solution que je recherchais.
    Il a crée un article sur son blog dédié à Windows Azure dont voici le lien : 

    http://fabriccontroller.net/blog/posts/key-not-valid-for-use-in-specified-state-exception-when-working-with-the-access-control-service/

    Tout le mécanisme permettant la mise en place de la solution se trouve sur le site.

    Un grand merci à Sandrino Di Mattia pour son aide précieuse, et ses conseils avisés.

    Bien à vous.

    lundi 28 janvier 2013 11:01

Toutes les réponses

  • Bonjour,

    J'ai un problème de développement pour un de mes clients.

    Laissez-moi vous expliquer:

    J'ai un projet de SSO: Yahoo, Gmail, Facebook, Windows Live et mon fournisseur d'identité propre (thinktecture), je le fais dans Visual Studio 2010, ASP.Net et Framework 4.0.

    J'ai un autre projet qui utilise ACS et mon projet SSO. Ce second projet est développé en Visual Studio 2012, Framework 4.5, MVC4.

    J'ai mis mon projet à la production, tout fonctionne parfaitement (SSO 2WebRole), lorsque j'essaie de passer mon projet MVC4 avec 2WebRole, j'obtiens une erreur d'exécution qui se produit de façon aléatoire après une certaine période de temps.

    Tout fonctionne lorsque mon projet (MVC4) a un seul WebRole.

    Est-ce quelqu'un une idée ou un lien?
    Est-ce un problème de compatibilité pour mon projet SSO Framework 4.0 et non 4.5?
    Est-ce un problème spécifique à MVC4?

    Pouvez-vous m'aider?

    Merci d'avance!
    mardi 22 janvier 2013 11:35
  • Bonjour
    Pour vous aider on a besoin de un message d'erreur.
    Comme c'est un problème aléatoire je dirai que ce n’est pas un problème de compatibilité.
    Cordialement,
     


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    • Marqué comme réponse Florin Ciuca vendredi 25 janvier 2013 05:42
    mercredi 23 janvier 2013 12:03
  • Bonjour,

    Voici le message d'erreur que je récupère lorsque je me connecte en RDP sur le WebRole :

    Log Name:      Application
    Source:        ASP.NET 4.0.30319.0
    Date:          1/23/2013 1:24:49 PM
    Event ID:      1309
    Task Category: Web Event
    Level:         Warning
    Keywords:      Classic
    User:          N/A
    Computer:      RD00155D3A47F0

    Description:
    Event code: 3005
    Event message: An unhandled exception has occurred.
    Event time: 1/23/2013 1:24:49 PM
    Event time (UTC): 1/23/2013 1:24:49 PM
    Event ID: 5eb119fe2c1b4eadb837f13c70197913
    Event sequence: 40
    Event occurrence: 13
    Event detail code: 0
     

    Application information:
        Application domain: /LM/W3SVC/1273337584/ROOT-1-130034180346750485
        Trust level: Full
        Application Virtual Path: /
        Application Path: E:\sitesroot\0\
        Machine name: RD00155D3A47F0
     

    Process information:
        Process ID: 1636    Process name: w3wp.exe
        Account name: NT AUTHORITY\NETWORK SERVICE

    Exception information:
        Exception type: CryptographicException
        Exception message: Key not valid for use in specified state.
           at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[]                              optionalEntropy, DataProtectionScope scope)
     
                           at System.IdentityModel.ProtectedDataCookieTransform.Decode(Byte[] encoded)

    Request information:
        Request URL: [MyURL]
        Request path: /bundles/modernizr
        User host address: XXXXXXXXXXXXXXXXXX

        User: 
        Is authenticated: False
        Authentication Type: 
        Thread account name: NT AUTHORITY\NETWORK SERVICE
     

    Thread information:
        Thread ID: 5
        Thread account name: NT AUTHORITY\NETWORK SERVICE
        Is impersonating: False
        Stack trace:    at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[]                               optionalEntropy, DataProtectionScope scope)
                        at System.IdentityModel.ProtectedDataCookieTransform.Decode(Byte[] encoded)

    vendredi 25 janvier 2013 12:54
  • Je vois

    Exception type: CryptographicException
        Exception message: Key not valid for use in specified state.

    Ceci est habituellement causé par la Request n'étant pas en mesure de déchiffrer le cookie jeton d'authentification. Assurez-vous que l'identité qui possède l'App Pool a des autorisations suffisantes pour accéder à votre certificate store. Essayez de changer l'identité NetworkService et de voir si cela aide.

    Vous devez également effacer les cookies de votre navigateur pour vous assurer que vous n'avez pas les cookies provenant d'une autre application en cache.


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.


    • Modifié Aurel Bera vendredi 25 janvier 2013 14:02
    vendredi 25 janvier 2013 14:01
  • Merci pour votre réponse.

    La question que je me pose est la suivante :

    Pourquoi est-ce que cela fonctionne parfaitement avec un seul WebRole ? Si le Request ne peut pas déchiffrer mon token, pourquoi il y arrive sur un seul WebRole?

    Concernant votre remarque, le certificat est placé directement sur Azure, dans mon fichier de configuration et dans la solution, donc est-ce vraiment nécessaire de devoir passer par le store certificat ?

    J'ai mis le site en production, en version de test pour certains clients afin d'apporter les modifications de design ou autre.

    Aucun soucis, mon propre provider fonctionne parfaitement mais lorsque je bascule sur 2 WebRole (en changeant la configuration directement du portail), la j'arrive à m'authentifier mais après un certain temps, à mon avis lorsqu'il passe sur un autre webRole, effectivement il n'arrive pas à décrypter mon "token" de sécurité, d'ou le message d'erreur. Ceci n'est qu'un raisonnement personnelle, je me trompe peu-être, mais cela me semble 'logique'.

    J'ai dans un premier temps pensé à la machineKey/ValidationKey qui pouvait poser problème, mais même en la spécifiant manuellement dans mon fichier de config, le problème persiste, néanmoins il est possible qu'Azure l'écrase derrière.

    J'ai peut être une idée que je compte tester ce lundi (un problème DPAPI pour l'encryption/decryption et donc override du FederationAuthentification dans mon global.asax).

    Je vous tiendrai au courant, si vous avez une autre piste, elle est là bienvenue.

    Merci sincèrement pour votre aide.

    Bien à vous.

    vendredi 25 janvier 2013 15:02
  • Bonjour, 

    Le problème est clôturé !

    J'ai discuté avec un ami, pour ne pas le nommer : Sandrino Di Mattia, qui m'a trouvé LA solution que je recherchais.
    Il a crée un article sur son blog dédié à Windows Azure dont voici le lien : 

    http://fabriccontroller.net/blog/posts/key-not-valid-for-use-in-specified-state-exception-when-working-with-the-access-control-service/

    Tout le mécanisme permettant la mise en place de la solution se trouve sur le site.

    Un grand merci à Sandrino Di Mattia pour son aide précieuse, et ses conseils avisés.

    Bien à vous.

    lundi 28 janvier 2013 11:01