2017-10-24 10 views
0

最初のMicrosoftログインと2回目のログインをしていないazureを通じてシングルサインインWebアプリケーションを作成しようとしています。現時点では2つのログインを取得しようとしていますが、ローカルで実行している場合は、アプリを稼働させてデュアルログインを使用してPower BIレポートを表示できます。しかし、私がAzureホストまでアプリを公開し、ログインするためのMicrosoftポップアップの代わりにパワーBIページにアクセスしようとすると、このエラーが発生します。Asp.Net Mvc Web App PowerBIログインHRESULT E_FAILエラー

[COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.] 
    Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask(Task`1 task) +89 
    MultiTenantWebApp.Controllers.PowerBiController.Autenticate() in C:\Users\G4Fro\Source\Repos\Intern\MultiTenantWebApp\MultiTenantWebApp\Controllers\PowerBiController.cs:165 
    MultiTenantWebApp.Controllers.PowerBiController.MakeGroupDictionary() in C:\Users\G4Fro\Source\Repos\Intern\MultiTenantWebApp\MultiTenantWebApp\Controllers\PowerBiController.cs:64 
    MultiTenantWebApp.Controllers.PowerBiController.EmbedReport() in C:\Users\G4Fro\Source\Repos\Intern\MultiTenantWebApp\MultiTenantWebApp\Controllers\PowerBiController.cs:32 
    lambda_method(Closure , ControllerBase , Object[]) +62 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +169 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 
    System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228 
    System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +577 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157 

私はそれがオフラインではなくオンライン働く理由は分からないとして任意の助けいただければ幸いですし、私はこれは、認証コード

private void Authenticate() 
     { 
      string clientID = ""; // We have our client ID here that was created in power BI dev apps 
      string redirectUri = "https://localhost:44367/"; 
      string resourceUri = "https://analysis.windows.net/powerbi/api"; 
      string authorityUri = "https://login.windows.net/common/oauth2/authorize"; 

      if (token == null) 
      { 
       AuthenticationContext authContext = new AuthenticationContext(authorityUri); 
       token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken; 
      } 
      else 
      { 
       return; 
      } 
     } 
であるスタックトレース

を理解する方法がわかりません

答えて

1

HRESULT E_FAILがCOMコンポーネントの呼び出しから返されました。それはオフラインではなくオンラインではない作品と私​​は例外によると、スタックトレース

を理解する方法がわからない、なぜ

は見当がつかない、あなたのアプリケーションは、アウト・オブ・へアクセスしようと思われますWebAppではCOMを処理しますが、 Web App sandboxでは制限されています。

WebAppで制限されていてCloudserviceが可能な場合は、Cloudserviceを使用してみてください。 Visual StudioからWebアプリケーションをAzureクラウドサービスに移行して公開する方法については、documentを参照してください。

+0

そのリンクからはそうだと言われていますが、それは制限されているようですが、現在の紺碧のサブスクリプションにはクラウドサービスがないので、それをアップグレードする必要があるかもしれません。 – 1seanr

+0

'Iそれが何であるか把握する方法を知らない。 WebAppではそれを行うことはできません。私たちはそれを行うことは許されません。 CloudServiceは選択肢かもしれません。 –

関連する問題