Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. После этого не перегружаю клиента опять создаю новый экземпляр и пытаюсь вызвать любой его метод. В ответ получаю hRes = 0x800706a7, что рачшифровывается как "последовательность протокола RPC не поддерживается". При этом вызов до метода сервера не доходит. А если клиент и сервер на одной машине, то все хорошо (как оно обычно и бывает). Если кто может, помогите.
Здравствуйте iyusov, Вы писали:
I>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. После этого не перегружаю клиента опять создаю новый экземпляр и пытаюсь вызвать любой его метод. В ответ получаю hRes = 0x800706a7, что рачшифровывается как "последовательность протокола RPC не поддерживается". При этом вызов до метода сервера не доходит. А если клиент и сервер на одной машине, то все хорошо (как оно обычно и бывает). Если кто может, помогите.
С каким ключом у тебя регистрируется объект класса в сервере? Случайно не с REGCLS_SINGLEUSE?
Re[2]: Проблема с вызовом метода удаленного сервера.
Здравствуйте MaximE, Вы писали:
ME>Здравствуйте iyusov, Вы писали:
I>>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. После этого не перегружаю клиента опять создаю новый экземпляр и пытаюсь вызвать любой его метод. В ответ получаю hRes = 0x800706a7, что рачшифровывается как "последовательность протокола RPC не поддерживается". При этом вызов до метода сервера не доходит. А если клиент и сервер на одной машине, то все хорошо (как оно обычно и бывает). Если кто может, помогите.
ME>С каким ключом у тебя регистрируется объект класса в сервере? Случайно не с REGCLS_SINGLEUSE?
нет.регистрится так: _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED);, что подверждается одновременной работой двух клиетнтов с двумя разными объектами
Здравствуйте iyusov, Вы писали:
I>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь.
А что значит отсоединяюсь ?
Народная мудрось
всем все никому ничего(с).
Re[3]: Проблема с вызовом метода удаленного сервера.
Здравствуйте iyusov, Вы писали:
I>Здравствуйте MaximE, Вы писали:
ME>>Здравствуйте iyusov, Вы писали:
I>>>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. После этого не перегружаю клиента опять создаю новый экземпляр и пытаюсь вызвать любой его метод. В ответ получаю hRes = 0x800706a7, что рачшифровывается как "последовательность протокола RPC не поддерживается". При этом вызов до метода сервера не доходит. А если клиент и сервер на одной машине, то все хорошо (как оно обычно и бывает). Если кто может, помогите.
ME>>С каким ключом у тебя регистрируется объект класса в сервере? Случайно не с REGCLS_SINGLEUSE? I>нет.регистрится так: _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED);, что подверждается одновременной работой двух клиетнтов с двумя разными объектами
кажется надо добавить флажок CLSCTX_REMOTE_SERVER
Re[2]: Проблема с вызовом метода удаленного сервера.
Здравствуйте Tom, Вы писали:
Tom>Здравствуйте iyusov, Вы писали:
I>>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. Tom>А что значит отсоединяюсь ?
Последовательность такая:
IStationServer* p;
CoCreateInstanceEx(..., &p); //тут через MULTI_QI p->Connect(); // это метод этого сервера
.... p->SomeCalls...
....... p->Disconnect(); p->Release();
а потом опять создаю p, и при вызове первого же метода получаю 0x800706a7
Re[3]: Проблема с вызовом метода удаленного сервера.
Здравствуйте iyusov, Вы писали:
I>Здравствуйте Tom, Вы писали:
Tom>>Здравствуйте iyusov, Вы писали:
I>>>Есть проблема. Создаю экземпляр удаленного сервера, вызываю его методы, затем отсоединяюсь. Tom>>А что значит отсоединяюсь ? I>Последовательность такая: I>IStationServer* p; I>CoCreateInstanceEx(..., &p); //тут через MULTI_QI p->>Connect(); // это метод этого сервера I>.... p->>SomeCalls... I>....... p->>Disconnect(); p->>Release();
I>а потом опять создаю p, и при вызове первого же метода получаю 0x800706a7