2009-06-13 2 views
4

Я следую за этот блог, чтобы создать лазурное хранения таблицы: http://blogs.msdn.com/jnak/archive/2008/10/28/walkthrough-simple-table-storage.aspxСоздание Azure таблицы для хранения на asp.net MVC

Он отлично работает на asp.net WebForm web_role.

Я воссоздал тот же проект, используя asp.net mvc в качестве веб-роли, и он всегда терпит неудачу при запуске приложения. эта строка:

StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();

Кажется, что всегда не получается получить общий ключ учетной записи.

Если я перемещаю строку из глобального приложения asax, начинаем с default.aspx, он отлично работает.

  • Есть ли разница в инициализации таблицы хранения в azure asp.net mvc по сравнению с webform?
  • Почему я не могу получить настройки лазурного ввода при запуске приложения?

  • Это стек вызовов ошибки от просмотра событий

     
    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) 
    

    Благодаря

    ответ

    2

    Проверьте "замечания" в http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.rolemanager.aspx:

    Трассы ткани Windows Azure IIS 7.0 в интегрированный режим. В интегрированном режиме событие Application_Start не поддерживает доступ к контексту запроса или к членам класса RoleManager , предоставляемого API-интерфейсом Windows Azure SDK . Если вы пишете приложение ASP.NET, обращающийся контекст запроса или вызовы методов класса RoleManager из события Application_Start, вы должны изменить его для инициализации в случае Application_BeginRequest вместо этого.

    Для примера, который показывает, как использовать событие Application_BeginRequest, увидеть образец PersonalWebSite, что поставляется с Windows Azure SDK.

    0

    Если вы используете:

    StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration(); 
    

    Обычно информация учетной записи задается в файле 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"/> 
    
    Смежные вопросы