Domanda

Sto seguendo questo post del blog per creare una tabella di memorizzazione azzurro: http: //blogs.msdn. com / jnak / archive / 2008/10/28 / walkthrough-semplici-tavolo-storage.aspx

Funziona bene su un web_role asp.net moduli elettronici.

Ho ricreato lo stesso progetto utilizzando asp.net mvc come il ruolo web, ed è sempre in mancanza all'avvio dell'applicazione. questa linea:

StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();

sembrano non riuscire sempre ottenere l'account chiave condivisa.

Se sposto la linea dall'applicazione ASax globale inizia a Default.aspx, funziona perfettamente bene.

  • v'è alcuna differenza nella inizializzazione di una tabella di archiviazione in azzurro mvc asp.net rispetto ai moduli elettronici?
  • Perché non posso avere le appsettings azzurro su Avvio applicazione?

  • Questo è lo stack di chiamate di errore dal visore di evento

    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)
    
    È stato utile?

    Soluzione

    Controlla le "osservazioni" al http: //msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.rolemanager.aspx :

      

    Il tessuto di Windows Azure esegue IIS 7.0   in modalità integrata. in integrata   modalità, l'evento fa Application_Start   Non sostenere l'accesso alla richiesta   contesto o ai membri della   Classe RoleManager fornito dal   Windows Azure SDK API runtime. Se tu   stanno scrivendo un'applicazione ASP.NET   che accede al contesto di richiesta o   chiama i metodi della classe RoleManager   dall'evento Application_Start, è   dovrebbe modificarlo per inizializzare in   evento Application_BeginRequest   invece.

         

    Per un esempio che mostra come utilizzare   l'evento Application_BeginRequest,   vedere l'esempio che PersonalWebSite   fornito con il Windows Azure SDK.

    Altri suggerimenti

    Se si utilizza:

    StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();
    

    Di solito le informazioni di account è dato nel file 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"/>
    
    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top