web-dev-qa-db-ja.com

内部エラーのため、サーバーはリクエストを処理できませんでした

Webサービスからメソッドを読み込もうとすると、エラーが発生します。

「内部エラーのため、サーバーはリクエストを処理できませんでした。エラーの詳細については、サーバーでIncludeExceptionDetailInFaults(ServiceBehaviorAttributeまたは構成動作のいずれかから)をオンにして、例外情報をクライアントに送り返します。 、またはMicrosoft .NET Framework SDKのドキュメントに従ってトレースをオンにし、サーバーのトレースログを調べます。」

これは私のapp.configエンドポイント定義です:

<services>
  <service name="Service" behaviorConfiguration="debug">
</services>

<client>
  <endpoint name="Service" address="net.tcp://localhost:12708/" binding="netTcpBinding" bindingConfiguration="netTcp" contract="path.IService" >
    <identity>
      <servicePrincipalName />
    </identity>
  </endpoint>
</client>

<serviceBehaviors>
    <behavior name="debug">
      <serviceDebug includeExceptionDetailInFaults="True" />
    </behavior>
  </serviceBehaviors>

ServiceBehaviorsを宣言した場合、これ以上の情報イベントを表示できません。誰かがこのエラーの詳細を確認するにはどうすればよいですか?

解決策:サービスが開始されませんでした。サービスをローカルで実行するため、必要なソリューションを開き、RG->新しいインスタンスの作成を介してサービスをローカルで実行する必要がありました。

これについてどうやって知ることができますか?私のログファイルはc:/ tempに保存されています。この場所に新しいログファイルが表示され、エラーに関する詳細情報が見つかりました。 (エラーメッセージの詳細が基本ログファイルに入力されるといつも思っていましたが、別のログファイルを期待していませんでした。

したがって、理由:Webサービスが機能しませんでした。
解決策:サービスをローカルで開始します:Rb->新しいサービスを作成します。

エラーのメッセージは非常に明確です。サーバーは、セキュリティ上の理由から内部エラーを非表示にするように構成されています。これは、 WCF MSDN投稿の障害処理 によるデフォルトの動作です。

2つのオプションがありますが、どちらもサーバーにアクセスできると想定しています。

  • エラーの詳細の表示を有効にする WCF MSDN投稿の障害処理 を参照してください。構成のセットアップ方法の詳細については、「例外が発生したときに追加情報を提供する」セクションを参照してください。

  • 実際のブレークポイントを使用してデバッグするこれはより良いでしょう。私の意見では、デバッグセッションが行う洞察を実際に提供するエラーメッセージはありません。

私が助けてくれたらいいのに!

6

これをローカルで実行する場合は、Tools-> _Attach to Process_を使用してサービスにアタッチすることでサービスをデバッグできます。

使用可能なプロセスのリストで、サービスを実行するように構成したものに応じて、タイプManaged (...) x64またはManaged (...) x86のプロセス_W3wp.exe_を探します。

Attatchをクリックし、サービスにいくつかのブレークポイントを設定し、Webブラウザーで再度アクセスを試みると、それらがヒットするはずです。

これを機能させるには、WSをデバッグモードで公開する必要があることに注意してください。

1
Kjartan

構成ファイルに診断を追加する必要があります。

 <system.diagnostics> 
      <sources> 
        <source name="System.ServiceModel" 
                switchValue="All" 
                propagateActivity="true"> 
          <listeners> 
            <add name="traceListener" 
                type="System.Diagnostics.XmlWriterTraceListener" 
                initializeData= "D:\AppLogs\Traces.svclog" /> 
          </listeners> 
        </source> 
      </sources> 
    </system.diagnostics>
0
elfekz