2012-11-23 4 views
2

System.Security.Cryptography.CryptographicException이 표시됩니다. 액세스가 거부되었습니다. 미디어 서비스 작업 또는 작업을 만들려고 할 때. 앱이 하늘색 웹 사이트 인스턴스에서 실행 중입니다. 모든 것이 지역적으로 이루어집니다. 앱이 인증서 저장소에 쓸 수없는 것 같습니다. 나는 아무런 영향을 미치지 않으면 서 앱의 신뢰 수준을 높이기 위해 노력했다. 나는 VM에 응용 프로그램을 이동하고 여전히 IIS7에서 실행하면 최종 솔루션 여기인증서 저장소 액세스가 거부되었습니다.

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/67216e79-c259-4685-95d0-3a09bab5c0c5/을 발견 같은 예외

편집을받을 수있다

System.Security.Cryptography.CryptographicException: Access is denied. 

    at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags) 
    at Microsoft.WindowsAzure.MediaServices.Client.EncryptionUtils.SaveCertificateToStore(X509Certificate2 certToStore) 
    at Microsoft.WindowsAzure.MediaServices.Client.BaseContentKeyCollection.GetCertificateForProtectionKeyId(DataServiceContext dataContext, String protectionKeyId) 
    at Microsoft.WindowsAzure.MediaServices.Client.BaseContentKeyCollection.GetCertificateToEncryptContentKey(DataServiceContext dataContext, ContentKeyType contentKeyType) 
    at Microsoft.WindowsAzure.MediaServices.Client.JobData.ProtectTaskConfiguration(TaskData taskData, X509Certificate2& certToUse) 
    at Microsoft.WindowsAzure.MediaServices.Client.JobData.Submit() 
    at MediaServices.Encoding.Encode_video_h264(IAsset asset) 
    at Business.Background_tasks.Kickoff_encoding(IAsset asset, Guid id) 
    at Routing.Controllers.BlobsController.UploadBlock(Int32 id) 
    at lambda_method(Closure , ControllerBase , Object[]) 
    at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 
    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 
    at System.Web.Mvc.Controller.ExecuteCore() 
    at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) 
    at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5() 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) 
    at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d() 
    at System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) 
    at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) 
    at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 
    at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

편집 - 지정할 수 있습니다 앱 풀의 사용자 프로필을로드합니다. 이렇게하면 응용 프로그램 풀 계정의 사용자 별 저장소에 액세스 할 수 있습니다.

답변

1

Windows Azure 웹 사이트에서 기대할 수 있습니다. 다른 웹 사이트와 함께 공유 환경에서 실행 중이며 보안상의 이유로 할 수없는 많은 일이 있습니다.

웹 응용 프로그램이 호스팅되는 컴퓨터 (인증서 저장소에 대한 전체 액세스, 레지스트리 변경 등)를 완벽하게 제어하려면 응용 프로그램을 웹 역할에 배포해야합니다.

+0

WAWS 예약 모드로 전환해도 여전히 허용되지 않습니까? –

+0

나는 의심이있다. 다른 고객을 위해 웹 사이트를 실행하는 예약 된 인스턴스가 있다고 가정 해보십시오. 고객 A가 인증서 저장소에 인증서를 쓰고 고객 B가이 인증서를 읽도록하지는 않을 것입니다. 나는 이것을 아직 테스트하지 않았지만 무료/공유 및 예약 배포시 호스팅 모델이 동일하다는 점을 논리적으로 알 수 있습니다. –

관련 문제