Question

je suis ce blog pour créer une table de stockage d'azur: http: //blogs.msdn. com / jnak / archive / 2008/10/28 / walkthrough-simple-table storage.aspx

Il fonctionne très bien sur un asp.net web_role formulaire en ligne.

J'ai recréé le même projet en utilisant mvc de asp.net le rôle Web, et il est toujours défaut au démarrage de l'application. cette ligne:

StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();

semblent ne pas toujours obtenir le compte clé partagée.

Si je déplace la ligne de l'application globale de asax commencent à default.aspx, il fonctionne parfaitement bien.

  • Y at-il une différence dans l'initialisation d'une table de stockage en asp.net mvc d'azur par rapport à formulaire en ligne?
  • Pourquoi ne puis-je obtenir les appsettings azur sur l'application commencent?

  • Ceci est la pile d'appels d'erreur Observateur d'événements

    Exception information: 
        Exception type: HttpException 
        Exception message: No account key specified! 
    
    Request information: 
        Request URL: http://127.0.0.1:5100/do.__rd_runtime_init__?shutdownEvent=1B671B93FD-4153-4834-9D5D-595EFC6C19EE1D 
        Request path: /do.__rd_runtime_init__ 
        User host address: 127.0.0.1 
        User:  
        Is authenticated: False 
        Authentication Type:  
        Thread account name: *****
    
    Thread information: 
        Thread ID: 6 
        Thread account name: *****
        Is impersonating: False 
        Stack trace:    at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
       at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
       at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
       at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
       at System.Web.HttpApplicationFactory.GetPipelineApplicationInstance(IntPtr appContext, HttpContext context)
       at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
    
    Était-ce utile?

    La solution

    Découvrez les "remarques" à http: //msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.rolemanager.aspx :

      

    Le tissu Windows Azure exécute IIS 7.0   en mode intégré. dans intégrée   mode, l'événement Application_Start fait   ne pas soutenir l'accès à la demande   contexte ou aux membres du   classe roleManager fournie par le   Windows Azure SDK API d'exécution. Si vous   écrivez une application ASP.NET   qui accède au contexte de demande ou   appelle les méthodes de la classe roleManager   de l'événement Application_Start, vous   devrait modifier pour initialiser dans le   événement Application_BeginRequest   à la place.

         

    Pour un exemple qui montre comment utiliser   l'événement Application_BeginRequest,   voir l'exemple PersonalWebSite que   livré avec le SDK Windows Azure.

    Autres conseils

    Si vous utilisez:

    StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();
    

    En général, les informations de compte sont données dans le fichier Web.conf.

    <add key="TableStorageEndpoint" value="http://127.0.0.1:10002/devstoreaccount1" />
    <add key="AccountName" value="devstoreaccount1" />
    <add key="AccountSharedKey" value="YOUR ACCOUNT KEY PROVIDED BY AZURE"/>
    
    Licencié sous: CC-BY-SA avec attribution
    Non affilié à StackOverflow
    scroll top