問題タブ [rpc]

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.

0 投票する
2 に答える
4836 参照

exception - Word Automation InvalidCastException RPC / COM 例外

Word Automation アプリケーションを開発していますが、予期しない RPC/COM キャスト例外で深刻な問題に直面しています。

[System.InvalidCastException: COM typ 'System.__ComObject' から typ インターフェジス 'Microsoft.Office.Interop.Word._Application' に変更されました。Ta operacja niepowiodłasię、poniewa流wywołaniemetody queryinterface dlaskładnikamodelu com w celu uzyskania interfejsu o itidefikatorze '{00020970-0000-0000-c000-0000000000000000000000000000000000000000000000000000000000000000000000000000000000 (Wyjątek od HRESULT: 0x800706BA)]

ポーランド語から英語への翻訳:

System.__ComObject を Microsoft.Office.Interop.Word._Application にキャストできません。その理由は、IID '{00020970-0000-0000-C000-000000000046}' の QueryInterface が失敗したことです - RPC サーバーが利用できません - エラー コード HRESULT: 0x800706BA

wordapp モジュールの概要は次のとおりです。

初期化 - ユーザーがログインした後。

....

app = new Application() の代わりに Activator.CreateInstance を使用しています

次に、ユーザーはwordappモジュールで2つのアクションを実行できます

a) 準備された docx ドキュメントを印刷する

b) docx を mht に変換

ユーザーがログアウトすると、Word インスタンスが解放されます。

例外はランダムな場所でスローされますが、最も一般的な場所は app.Documents.Add の近くです。その例外の後、app.Quit はできません。単語インスタンスが死んでいるようです。

イベントログ(アプリケーションスコープ)でそのことを見つけました:

EventType offdiag12、P1 585d8a02-f370-4c04-85b6-fccad7e80459255ec053-6dbd-4a22-9e59-112a79de8c6a、P2 NIL、P3 NIL、P4 NIL、P5 NIL、P6 NIL、P7 NIL、P8 NIL、P9 NIL、P10 NIL。

Office Diagnostics を実行しましたが、エラーは見つかりませんでした。

システムからより多くのエラー情報を有効にする/見つけることは可能ですか?

このコードは、私の開発マシン (vista) で問題なく動作します。この問題は、顧客のマシン (通常は winxp sp2/sp3) で発生します。

コードにエラーがありますか?

私が追加する必要がある唯一のこと。WordModule の init/close/print 関数はメイン スレッドから呼び出され、savetomht は backgroundworkder のスレッドから呼び出されます。

0 投票する
1 に答える
1173 参照

http - "Transfer-Encoding: chunked" を使用した HTTP 応答のチャンク サイズは、HTTP の上にあるプロトコルにとって重要ですか?

HTTP 内で運ばれるものはチャンク サイズを気にしますか? おそらくある種のRPCプロトコルですか?

編集:ウィキペディアのサンプル応答は次のとおりです

応答は、23 や 1A とは異なるサイズのチャンクに簡単に分割できた可能性があります。チャンク境界が重要な場合はありますか?

0 投票する
7 に答える
20342 参照

gwt - JPA を使用した GWT

GWT 1.5.3 を使用してデータベース アプリケーションを構築しようとしています。オブジェクトで JPA アノテーションを使用します。ホスト モードでは、GWT の RPC が正常に動作しているようです。しかし、GWT コンパイラを使用してアプリをコンパイルしようとすると、「インポート javax.persistence を解決できません」、「エンティティをタイプに解決できません」などのエラーが表示されます。toplink-essentials.jar は既にプロジェクト パスに含まれています。この問題を解決するには、他にどのような設定が必要ですか?

0 投票する
2 に答える
451 参照

c - スタブなしの C RPC

他のプロセスが(UNIXソケットを介して)関数を呼び出せるようにするこのプログラムがあります。メッセージ プロトコルは非常に単純で、関数名、関数シグネチャ、およびパラメーターを保持するバッファー (char *) です。

プログラム内のモジュールが関数にアクセスできるようにする場合、名前と署名をライブラリに登録します。私が直面している問題は、要求が入ったときに関数を物理的に呼び出すことです。RPC と Java RMI のようなライブラリを見てきましたが、呼び出しをラップするためにスタブを生成する必要があります。私が取り組んでいるシステムは非常に動的であり、変更できない他の人々のコードとやり取りする必要もあります。

基本的に、関数は次のようになります。

今、私は図書館に登録しています:

リクエストが来ると、いくつかのエラー チェックを行い、有効になったら関数を呼び出します。だから私は変数を持っています:

C でパラメーターを使用して関数を呼び出すにはどうすればよいですか?

ありがとう!

0 投票する
3 に答える
5474 参照

java - Java RPC サーバーのフレームワーク

Java で RPC サーバーを作成する予定です。サーバーは着信 RPC を (おそらく HTTP 経由で) 受け入れ、応答する必要があります。かなり基本的なもの。「ロング ポーリング」または「ハング」RPC のサポートは必要ないため、リクエストごとのスレッド モデルが完全に適切なはずです。

これを Python で書いていたら、おそらく twisted のようなフレームワークを使うでしょう。C では、glibc のようなもの。いずれの場合も、フレームワークは、IO を処理する一般的な「選択ループ」コアの実装を提供し、それを処理するより高いレベルの構造を呼び出します。最終的に、RPC の受信などのイベントに対してアプリケーションが呼び出されます。

ただし、Java で実質的なものを書いてから長い時間が経過しているため、この種の最新技術や提案されたソリューションが何であるかはわかりません。おそらく、これを行うために簡単に使用できる標準ライブラリの一部さえあります。したがって、StackOverflow への私の質問: このようなタスクに適したフレームワークはありますか?

RPC に HTTP を使用することもありますが、これは断固として Web アプリケーションではないことに注意してください。そのため、Web フレームワークは適切ではありません。

0 投票する
2 に答える
570 参照

c++ - 「呼び出しが失敗し、実行されませんでした」

プロセス間通信にMicrosoftRPCを使用するプログラムがあります。このような[in、string]パラメータを使用してメソッドを呼び出すと(MIDL表記):

呼び出されると、通常は成功します。ただし、パラメータ文字列が十分に長い場合(約300万文字を超える場合)、呼び出しはRPC_S_CALL_FAILED_DNE( "リモートプロシージャコールが失敗し、実行されませんでした。")で失敗します。それは確かに弦の長さに依存します。同じ条件での同じ呼び出しは、文字列が制限内にある場合は常に成功し、文字列が長い場合は常に失敗します。また、制限はシステムまたはマシンに依存しているように見えます。

誰かがそのような振る舞いを観察しましたか、そして(パラメータを短くすることなく)可能な解決策は何ですか?

0 投票する
2 に答える
4174 参照

c++ - RPC サーバーの起動時に「エンドポイントが重複しています」

私のプログラムは、プロセス間通信に Microsoft RPC を使用しています。RPC 呼び出しの受信を準備するために、プログラムは次のシーケンスを実行します。

  1. RpcServerUseProtseqEp()、次に

  2. RpcServerRegisterIf() の場合

  3. RpcServerListen()

プログラムは上記のシーケンスで RPC サーバーを起動し、しばらく動作してから終了し、後で別のプログラムによって再起動される可能性があります。RpcServerUseProtseqEp() のパラメーター値のセットは、プログラムが実行されるたびに同じです。

シーケンスが再起動後に初めて実行されるときは常に成功しますが、その後の実行では RpcServerUseProtseqEp() は RPC_S_DUPLICATE_ENDPOINT を返します (「エンドポイントは重複しています。」) 現在、この特定のエラー コードを無視して成功として扱います。他のプリミティブは通常正常に動作します。

RpcServerUseProtseqEp() を使用する正しい方法は何ですか? クリーンアップを行って登録済みのエンドポイントを取り消すか、RPC_S_DUPLICATE_ENDPOINT エラー コードを無視し続ける必要がありますか?

0 投票する
11 に答える
22530 参照

google-app-engine - Google Web Toolkit (GWT) + Google App Engine (GAE) + 切り離されたデータの永続性

GWT と GAE を使用して、データの永続性を必要とする Web アプリを開発したいと考えています。私が理解しているように、データ永続化のための唯一の (または少なくとも最も便利な) オプションは、JDO または JPA アノテーション付きオブジェクトを使用する GAE のデータストアです。また、GWT リモート プロシージャ コール (RPC) を使用してクライアントとサーバーの間でオブジェクトを送受信できるようにしたいので、オブジェクトを「デタッチ」できる必要があります。ただし、GWT RPC シリアライゼーションは分離された JDO/JPA オブジェクトを処理できず、近い将来に処理されるようには見えません。

私の質問: これに対する最も簡単で直接的な解決策は何ですか? 同じオブジェクトのクライアント/サーバーをサーバー側の永続性で共有できると、非常に便利です。

編集

GAE のデータストアで GWT RPC を引き続き使用したいことを明確にする必要があります。私は、これらすべてのテクノロジーを連携させるための最良のソリューションを探しています。

0 投票する
1 に答える
1106 参照

c++ - "operation is not supported" when invoking an RPC call on Vista

My application uses Microsoft RPC for interprocess communications. When two processes are run on the same machine and one process tries to call a method declared as (IDL notation):

this call fails with RPC_S_CANNOT_SUPPORT ("The requested operation is not supported") and never reaches the server side and the push()/pull() primitives of the supplied pipe are never called. This is only reproduced on Vista when using ncalrpc protocol and not otherwise.

I also found the following in the Event Viewer logs:

Application ("my program exe file name here" \service) (PID: 344) is using Windows functionality that is not present in this release of Windows. For obtaining an updated version of the application, please, contact the application vendor. The technical information that needs to be conveyed to the application vendor is this: "An RPC method using synchronous pipes has been called on on protocol sequence ncalrpc interface with unique identifier (actual UUID here). Usage and support of synchronous pipes on this protocol sequence has been deprecated for this release of Windows. For information on the deprecation process, please, see http://go.microsoft.com/fwlink/?LinkId=36415." User Action Contact the application vendor for updated version of the application

The link in the message text redirects to a page that is not likely relevant.

Is there a workaround for this problem except for changing the protocol sequence or not using pipes?

0 投票する
13 に答える
135507 参照

serialization - シリアル化とマーシャリングの違いは何ですか?

いくつかの分散技術(RPCなど)の観点から、「マーシャリング」という用語が使用されていることは知っていますが、シリアル化との違いがわかりません。どちらもオブジェクトを一連のビットに変換していませんか?

関連している:

シリアル化とは何ですか?

オブジェクトマーシャリングとは何ですか?