1

Windows 7 / 64 ビットおよび Windows Server 2008 / 64 ビットでも同じセットアップが機能します。

  • Datasnap サーバー アプリケーションは、マウントされたネットワーク ドライブ上にあります。
  • tregsvr に登録済み<drive>:\path\to\server.exe(管理者として)
  • GUID は dcomcnfg に表示されます
  • Socketserver および DCOM サービスが実行されている

クライアントが失敗し、「クラスが登録されていません」というエラー メッセージが表示される

サーバー アプリをローカル ディレクトリに移動し、tregsvr の登録を繰り返すと、クライアントは問題なく接続できます。

他に何を確認できますか?

4

3 に答える 3

2

クライアントはネットワーク ドライブへの接続を許可されていますか? クライアントは実際にサーバーの起動を開始しているため、そのネットワーク ドライブを読み取ることができるはずです (サーバーがローカル ドライブ上にある場合は正常に動作するため、これはまさにあなたが見ているものです)...

于 2011-11-02T12:05:05.643 に答える
1
  1. サーバーは共有ネットワークドライブに存在してはなりません
  2. クライアント側でサーバータイプライブラリを登録する必要があります。そうしないと、クライアント側のDCOMは、インスタンス化するクラスと、ネットワークを介してその呼び出しをマーシャリングする方法を理解できません。サーバーアプリケーションのインスタンス化をサーバーに要求するのはDCOMです。
  3. DCOM接続では、サーバーの場所(IPまたはホスト名)を指定する必要があります。
  4. DCOMを正しく構成する必要があります。DCOMcnfg.exeを使用して、サーバーをインスタンス化して呼び出すことができるユーザー/グループを構成します。

ソケットサーバーを使用している場合は、実際にはプロキシとして機能します。クライアントに代わってDCOM呼び出しを行うのはソケットサーバーですが、それでも呼び出しはソケットサーバーに送信されるパケット内にカプセル化されます。

于 2011-11-02T13:19:26.330 に答える
0

解決済み:

  • tregsvr Datasnap サーバーのネットワーク ロケーションへの UNC パス (マウントされたネットワーク ドライブではなく)
  • SYSTEMアカウントとしてSocketserverを実行することは問題ありません。追加の権限は必要ありません

サーバーからログオフした後も、Datasnap クライアントは問題なくサーバーに接続します

他の/古いサーバーは、必要な権限を持つアプリケーションとしてSocketserverを実行しています:P

于 2011-11-02T12:57:30.923 に答える