問題タブ [wcf-lob-adapter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 時間に制約のあるメソッドを実装する場合、ワーカー スレッドを中止するか、そのまま実行する必要がありますか?
現在、既存のアプリケーションに Web サービス ベースのフロント エンドを作成しています。そのために、私はWCF LOB Adapter SDKを使用しています。これにより、外部データと操作を Web サービスとして公開するカスタム WCF バインディングを作成できます。
SDK は実装するいくつかのインターフェイスを提供し、それらのメソッドの一部は時間制限があります。実装は、指定された時間内に作業を完了するか、TimeoutExceptionをスローすることが期待されます。
調査の結果、「Implement C# Generic Timeout」という質問にたどり着きました。この質問は、ワーカー スレッドを使用することを賢明にアドバイスしています。その知識があれば、次のように書くことができます。
ただし、ワーカー スレッドがタイムアウトした場合にどうするかについては、コンセンサスが明確ではありません。上記のコードのように忘れるか、中止することができます:
現在、スレッドを中止することは、広く間違っていると考えられています。進行中の作業を中断し、リソースをリークし、ロックを台無しにし、スレッドが実際に実行を停止することさえ保証しません。つまり、HttpResponse.Redirect()
呼び出されるたびにスレッドを中止し、IIS はそれに完全に満足しているようです。何らかの形で対処する準備ができているのかもしれません。私の外部アプリケーションはおそらくそうではありません。
一方、リソース競合の増加 (プール内の使用可能なスレッドの減少) は別として、ワーカー スレッドにそのコースを実行させた場合、work.EndInvoke()
呼び出されることはないため、とにかくメモリ リークは発生しませんか? より具体的には、MetadataRetrievalNode[]
によって返された配列はwork
永遠に残りませんか?
これは 2 つの悪のうち小さい方を選択するだけの問題ですか、それともワーカー スレッドを中止せずに使用されたメモリを再利用する方法はありBeginInvoke()
ますか?
biztalk - カスタム WCF LOB アダプターを使用して一方向の送信を実行する方法
BizTalk で使用する基本的な一方向のカスタム WCF LOB アダプターを作成しようとしておりExecute
、Visual Studio WCF LOB アダプター SDK プロジェクト ウィザードによって作成されるメソッドを実装しています。
このメソッドのドキュメントは、メソッドのすぐ上に表示される次のコメントで要約されています。
ただし、 を返すnull
と、BizTalk でエラーが発生し、次の (大まかに翻訳された) メッセージが表示されます。
System.ServiceModel.CommunicationException: The server did not produce an appropriate response ; this may be due to non-matching contracts ; a premature end of the session or an internal error.
何を与える?
biztalk - カスタム WCF LOB アダプターで適切なエンコーディングを使用してメッセージ本文を取得する方法は?
BizTalk で使用する基本的な一方向のカスタム WCF LOB アダプターを作成しようとしています。ただし、ターゲット システムが Xml メッセージをサポートしているとは限りません。カスタム WCF アダプターを通過するメッセージは XML エンベロープでラップされ、メッセージ本文は次の 4 つの方法のいずれかでエンコードできることを理解しています。
- XML
- 弦
- BinHex
- Base64
この設定はOutbound WCF message body
、次の XML フラグメントのようなプロパティを受け入れるプロパティの構成によって管理されます。
Execute
私のクラスのメソッドの実装ではCustomAdapterOutboundHandler
、送信ポート構成で指定されたエンコーディングをどのように取得できますか?
biztalk - カスタム WCF LOB アダプターでストリーミングを実装することは可能ですか?
WCF LOB アダプター SDK は、カスタム LOB アダプターの実装を開始するためのスケルトン コードを作成します。このコードの一部として、次のIOutboundHandlerインターフェイスが実装されています。
WCF LOB アダプター SDK で構築されたアダプターでストリーミングを実装することは可能ですか? 私が知る限り、ストリーミングを実装する組み込みの WCF アダプターはどれも IOutboundHandler インターフェイスを使用していません...
biztalk - WCF LOB Adapter SDK を手動で削除する方法はありますか
BizTalk 2013 Dev エディションがインストールされている間に、PC を Windows 10 に更新しました。BizTalk 2013 R2 に更新しましたが、「別のバージョンが既にインストールされています」と表示され、WCF LOB Adapter SDK をインストールできません。コントロール パネル/プログラムの削除にも表示されないため、WCF LOB Adapter SDK 2013 を削除できません。WCF LOB Adapter SDK 2013 msi も実行しようとしましたが、同じエラーが発生します。msiexec /x
どちらも機能しません。
どういうわけか、WCF LOB Adapter SDK 2013 を削除し、msiexec またはコントロール パネルを使用せずに WCF LOB Adapter SDK 2013 R2 をインストールするか、既にインストールされている WCF LOB Adapter SDK 2013 をウィンドウに認識させ、コントロール パネルから削除する必要があります。
c# - カスタム WCF LOB アダプターの使用
私の質問は次のとおりです。コードを変更して新しい dll をビルドし、それを GAC に入れると、消費する wcf アダプター ダイアログが更新されないのはなぜですか?
詳細: Biztalk サーバー 2013 r2 用のカスタム wcf LOB アダプターを開発しています。必要なインターフェースを実装しIMetadataBrowseHandler
、それをビルドして GAC に入れました。
Biztalk プロジェクトでそれを使用する場合、「生成されたアイテムを追加 =>ConsumeAdapterService」を実行すると、結果を確認できます。コードを変更したため、ツリーに新しいノードが表示されるはずですが、Visual Studio を再起動するまで新しい項目は表示されませんでした。
ダイアログの画像は次のとおりです。
installation - BizTalk WCF Lob アダプター SDK が Windows 10 マシンにインストールされないのはなぜですか?
Windows 10 マシンに BizTalk サーバーをインストールしています。2 つの Visual Studio インスタンスがインストールされています。1 つは VS2015 で、もう 1 つは VS2017 です。BizTalk Server 2016 を正常にインストールし、そのコンポーネントの一部を作成して使用することができました。ただし、今は WCF アダプターも使用したいと考えています。このために、インストール セットアップを通じて Microsoft WCF Lob Adapter SDK をインストールしようとしました。しかし、「WCF LOB アダプター SDK のアップグレード不可能なバージョンが既に存在します。インストールを続行できません。プログラムの追加と削除を使用して既存の WCF LOB アダプター SDK を削除し、もう一度インストールしてください!」と言ってインストールに失敗しています。
インストールされているすべてのアダプター パックをアンインストールし、WCF Lob Adapter SDK を再インストールしようとしました。しかし、運がありませんでした。
誰でもこれについて考えがありますか?私は BizTalk を初めて使用し、管理を学ぼうとしています。誰か助けてくれませんか?