0

Visual Studio 2010 を使用して C# で Windows Azure に展開する x509 証明書を必要とする Healthvault WCF Web サービスを構築しようとしています。ローカル IIS7 でソリューションをデバッグすると、すべての機能を問題なく実行できます。Windows Azure にデプロイしてメソッドを実行しようとすると、このエラーが発生します。

サーバーでリクエストの処理中にエラーが発生しました。例外メッセージは「アクセスが拒否されました。」です。詳細については、サーバー ログを参照してください。例外スタック トレースは次のとおりです。

System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (オブジェクト インスタンス、オブジェクト [] 入力、オブジェクト [] & 出力) で System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc& rpc) で System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 ( MessageRpc& rpc) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) で System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

これは Healthvault のコードとは関係がないようですので、WCF サービスに関連していると推測しています。私が理解できないのは、ローカルの開発環境と Azure の間で何が変わるのかということです。とにかく、これが私のweb.configファイルです

<?xml version="1.0"?>
<configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          name="AzureDiagnostics">
          <filter type="" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
 <system.serviceModel>
   <services>
     <service name="myIHM.Healthvault">
       <endpoint address="" binding="webHttpBinding" contract="myIHM.IHealthvault" behaviorConfiguration="webHttp" />
     </service>
   </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webHttp">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
  <appSettings>
    <add key="ApplicationId" value="[my-app-id]"/>
    <add key="ShellUrl" value="https://account.healthvault-ppe.com/"/>
    <add key="HealthServiceUrl" value="https://platform.healthvault-ppe.com/platform/"/>
    <add key="AppCertSubject" value="[my-cert-subject]"/>
  </appSettings>
</configuration>

いくつかの答えを探しましたが、私の状況に関連するものは何も見つからないようです。誰かお勧めはありますか?ありがとう。

4

1 に答える 1

0

注意すべきことの 1 つは、開発ファブリックで実行する場合は、クラウド ファブリックで実行する場合よりも多くのアクセス許可があることです。そのため、開発ファブリックで機能しているのに、クラウドでアクセス許可エラーが発生することはあまり珍しくありません。残念です、私は知っています。無料試用版があるAzure Diagnostics Manager ( http://www.cerebrata.com/Products/AzureDiagnosticsManager/Default.aspx ) などを使用して、サーバー ログの取得を試みることができます。これにより、正確に何が失敗しているかについての詳細が得られる場合があります。

于 2010-07-26T22:58:20.153 に答える