Pregunta

Estoy siguiendo esta entrada del blog para crear una tabla de almacenamiento de Azure: http: //blogs.msdn. com / jnak / archivo / 2008/10/28 / tutorial-sencillo-table-storage.aspx

Funciona bien en una web_role asp.net formulario web.

He recreado el mismo proyecto utilizando asp.net mvc como el papel web, y siempre ha fallar al iniciar la aplicación. esta línea:

StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();

parecen fallar siempre conseguir la cuenta de clave compartida.

Si muevo la línea de aplicación global asax empezar a default.aspx, funciona perfectamente bien.

  • ¿Hay alguna diferencia en la inicialización de una tabla de almacenamiento en asp.net mvc azul en comparación con el formulario web?
  • ¿Por qué no puedo obtener los appsettings azules al iniciar la aplicación?

  • Esta es la pila de llamadas de error del visor de eventos

    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)
    
    ¿Fue útil?

    Solución

    Vea las "observaciones" en http: //msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.rolemanager.aspx :

      

    La estructura de Windows Azure se ejecuta IIS 7.0   en el modo integrado. en integrada   el modo, el evento Application_Start hace   No apoyar el acceso a la solicitud   contexto o de los miembros de la   roleManager clase proporcionada por el   Windows Azure SDK API de tiempo de ejecución. Si tu   está escribiendo una aplicación ASP.NET   que tiene acceso al contexto de la petición o   llama a los métodos de la clase roleManager   Del evento Application_Start, se   debe modificarlo para inicializar en el   evento Application_BeginRequest   en su lugar.

         

    En un ejemplo que muestra cómo utilizar   el evento Application_BeginRequest,   Vea el ejemplo PersonalWebSite que   se suministra con el SDK de Windows Azure.

    Otros consejos

    Si utiliza:

    StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();
    

    Por lo general, la información de la cuenta se da en el archivo 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"/>
    
    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top