0

WCF サービスを呼び出して応答を取得する単純なオーケストレーションを作成しました。Web サービス メソッドは非常に単純です。

文字列 GetSimple(int 値)

BizTalk はフォルダーを監視し、そこから FILE アダプターを使用してアクティベーション メッセージを受け取り、適切なメッセージを作成して Web サービスを呼び出します。しかし、この例外で失敗します:

エラーの説明: System.Configuration.ConfigurationErrorsException: クラス System Diagnostics.TextWriterTraceListener の型が見つかりませんでした。

サーバー スタック トレース:
    System.Diagnostics.TraceUtils.GetRuntimeObject (文字列 className、型 baseType、文字列 initializeData) で
    System.Diagnostics.TypedElement.BaseGetRuntimeObject() で
    System.Diagnostics.ListenerElement.GetRuntimeObject() で
    System.Diagnostics.ListenerElement.GetRuntimeObject() で
    System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() で
    System.Diagnostics.TraceSource.Initialize() で
    System.Net.Logging.InitializeLogging() で
    System.Net.Logging.get_On() で
    System.Net.WebRequest.Create (Uri requestUri、ブール値の useUriBase) で
    System.Net.WebRequest.Create (Uri requestUri) で
    System.ServiceModel.Channels.HttpChannelFactory.GetWebRequest (EndpointAddress へ、URI 経由、NetworkCredential 資格情報、TokenImpersonationLevel impersonationLevel、AuthenticationLevel authenticationLevel、SecurityTokenProviderContainer proxyTokenProvider、SecurityTokenContainer clientCertificateToken、TimeSpan タイムアウト) で
    System.ServiceModel.Channels.HttpChannelFactory.GetWebRequest (EndpointAddress へ、Uri 経由、SecurityTokenProviderContainer tokenProvider、SecurityTokenProviderContainer proxyTokenProvider、SecurityTokenContainer clientCertificateToken、TimeSpan タイムアウト) で
    System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.GetWebRequest (EndpointAddress へ、Uri 経由、SecurityTokenContainer clientCertificateToken、TimeoutHelper& timeoutHelper) で
    System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.GetWebRequest (EndpointAddress へ、Uri 経由、TimeoutHelper& timeoutHelper) で
    System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.BeginSendRequest (メッセージ メッセージ、TimeSpan タイムアウト) で
    System.ServiceModel.Channels.RequestChannel.BeginRequest (メッセージ メッセージ、TimeSpan タイムアウト、AsyncCallback コールバック、オブジェクトの状態) で
    System.ServiceModel.Dispatcher.RequestChannelBinder.BeginRequest (メッセージ メッセージ、TimeSpan タイムアウト、AsyncCallback コールバック、オブジェクトの状態) で
    System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.StartSend (ブール値の completedSynchronously) で
    System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin() で
    System.ServiceModel.Channels.ServiceChannel.BeginCall (文字列アクション、ブール一方向、ProxyOperationRuntime 操作、オブジェクト [] ins、TimeSpan タイムアウト、AsyncCallback コールバック、オブジェクト asyncState) で
    System.ServiceModel.Channels.ServiceChannel.BeginRequest (メッセージ メッセージ、TimeSpan タイムアウト、AsyncCallback コールバック、オブジェクトの状態) で
    System.ServiceModel.Channels.ServiceChannel.BeginRequest (メッセージ メッセージ、AsyncCallback コールバック、オブジェクトの状態) で

[0] で例外が再スローされました:
    System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg、IMessage retMsg) で
    System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData& msgData、Int32 型) で
    System.ServiceModel.Channels.IRequestChannel.BeginRequest (メッセージ メッセージ、AsyncCallback コールバック、オブジェクトの状態) で
    Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendRequestMessage (IBaseMessage bizTalkMessage、IRequestChannel チャネル) で
    Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendMessage (IBaseMessage bizTalkMessage) で


例外の種類: XlangSoapException
ソース: Microsoft.XLANGs.BizTalk.Engine
ターゲット サイト: Void VerifyTransport(Microsoft.XLANGs.Core.Envelope, Int32, Microsoft.XLANGs.Core.Context)
以下は、例外が発生した場所を特定するスタック トレースです。

    Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport (エンベロープ env、Int32 operationId、コンテキスト ctx) で
    Microsoft.XLANGs.Core.Subscription.Receive (セグメント s、コンテキスト ctx、エンベロープ & env、ブール型の topOnly) で
    Microsoft.XLANGs.Core.PortBase.GetMessageId (サブスクリプション サブスクリプション、セグメント currentSegment、コンテキスト cxt、Envelope& env、CachedObject の場所) で
    Orch.Orc.segment1 (StopConditions stopOn) で
    Microsoft.XLANGs.Core.SegmentScheduler.RunASegment (セグメント s、StopConditions stopCond、Exception& exp) で
        


見つかりませんTextWriterTraceListenerでした。それはどこにある?この例外を取り除く方法は?

4

1 に答える 1

1

WCF サービスの設定ファイルまたは BTSNtSvc.exe.config に問題があるようです。BizTalk は正しい要求を送信しているようです。

ほとんどの場合、WCF からのログ メッセージに関する構成に問題があるか、BTSNtSvc.exe.config のログに関するパラメーターが正しくありません。

問題を絞り込むために、標準の .net クライアントからサービスを呼び出すことができます。

HTH

于 2012-01-26T19:45:02.253 に答える