1

私が一緒に働いているチームは、(CrossCheck Networks から) CloudPort ライセンスを購入しましたが、現在、(応答の選択を制御するための) サービス モックに何らかのロジックを実装できないという問題に直面しています。それは次のように単純なものになります:

if (requestCounter++ == 1)
    then 
        response = $fn:Global(MyFirstXmlString)$ // <-- this is CloudP syntax for vrbls
    else 
        response = $fn:Global(MySecondXmlString)$. 

Dll プラグインを使用するためのサンプルは見つかりませんでした。また、2 つの JScript タスクと VBScript タスクのどちらも機能していません (つまり、クライアント マシンは目的のMySecondXmlString応答ではなく、代わりに次のエラーを返します)。

<faultstring>   
    ActiveX control '0e59f1d5-1fbe-11d0-8ff2-00a0d10038bc' cannot be instantiated 
    because the current thread is not in a single-threaded apartment.
</faultstring>. 

信じられないかもしれませんが、J スクリプトまたは VB スクリプトのタスクが空のままであっても、上記のエラーが発生します。CloudPort UI で宣伝されているすべてのロジック機能が偽物であり、上記の種類のロジックを実装するのに役立つものは何もないとは信じがたいです。

どんな助けでも大歓迎です!

ありがとう、ポンピ

PS: 上記の種類のロジックが必要な理由について、もう少し詳しく説明します。 テスト フレームワークで SoapSonar を使用して、BizTalk オーケストレーション アプリケーションへの要求を起動します。その BT オーケストレーションの環境をシミュレートするには、CP モックが必要です。SSonar リクエストを介して個々のモックされた応答を制御することはできません。(クラウドポートの場合: 着信) クライアント リクエストは製品コードによって行われ、SSonar クライアントによって変更または制御することはできません)。私たちのために機能した唯一のタスク機能は、SSonar と CP のオフライン チャネルとして機能する DB テーブルです (SSonar が書き込み、CP が読み取ります)。CloudPort による DB からの、たとえば responseXml の読み取りは正常に機能しますが、CP 側でロジックを制御する動作をさらに実装する方法が見つかりません。したがって、このstackoverflowの投稿。

4

1 に答える 1

0

スクリプトからこれを制御できるとは思わないでください。

スレッドモデルはホストによって制御される必要があります。ホストは、実際の実行にWindowsの「vbscript.dll」を使用していると思います。したがって、ツールのオプションまたはヘルプで設定が見つからない場合は、レジストリキーでそのActiveXまたは「vbscript.dll」のスレッドオプションを確認する必要があります。これは「ThreadingModel」の値であり、値(ネットでそれらを検索する必要があります。心からはわかりません)。

他のアプリケーション(アンチウイルス?)が、COMインターフェイスが実際に指す必要があるdllへのパスを変更している可能性があります(http://social.technet.microsoft.com/Forums/en-US/ieitpropriorver/thread/を参照) ac10bd5f-6d91-4aac-857c-0ed5758088ec

それが役に立てば幸い。

于 2013-03-12T12:38:32.970 に答える