문제

이 블로그 게시물을 팔로우하여 Azure Storage Table을 만듭니다.http://blogs.msdn.com/jnak/archive/2008/10/28/walkthrough-simple-table-storage.aspx

ASP.NET WebForm Web_Role에서 잘 작동합니다.

ASP.NET MVC를 웹 역할로 사용하여 동일한 프로젝트를 다시 만들었으며 애플리케이션 시작시 항상 실패합니다. 이 라인 :

StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration();

항상 계정 공유 키를 얻지 못하는 것 같습니다.

Global ASAX 응용 프로그램에서 기본값으로 라인을 이동하면 완벽하게 잘 작동합니다.

  • WebForm과 비교하여 Azure ASP.NET MVC에서 스토리지 테이블을 초기화하는 데 차이가 있습니까?
  • 애플리케이션 시작시 Azure AppSetting을받을 수없는 이유는 무엇입니까?

  • 이것은 이벤트 뷰어의 오류 호출 스택입니다

    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)
    
    도움이 되었습니까?

    해결책

    "비고"를 확인하십시오 http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.rolemanager.aspx:

    Windows Azure Fabric은 IIS 7.0을 통합 모드로 실행합니다. 통합 모드에서 Application_Start 이벤트는 요청 컨텍스트 또는 Windows Azure SDK 런타임 API가 제공하는 RoleManager 클래스의 멤버에 대한 액세스를 지원하지 않습니다. Application_Start 이벤트에서 요청 컨텍스트에 액세스하거나 RoleManager 클래스의 호출 메소드를 호출하는 ASP.NET 응용 프로그램을 작성하는 경우 Application_BeginRequest 이벤트에서 초기화하도록 수정해야합니다.

    Application_beginRequest 이벤트 사용 방법을 보여주는 예는 Windows Azure SDK와 함께 제공되는 PersonalWebsite 샘플을 참조하십시오.

    다른 팁

    사용하는 경우 :

    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"/>
    
    라이센스 : CC-BY-SA ~와 함께 속성
    제휴하지 않습니다 StackOverflow
    scroll top