У нас довольно стандартное клиент-серверное приложение, созданное с использованием MS RPC. И клиент, и сервер реализованы на C ++. Клиент устанавливает сеанс на сервер, затем совершает повторные вызовы в течение определенного периода времени, прежде чем окончательно закрыть сеанс.
Однако периодически, особенно в условиях большой нагрузки, мы видим исключение RPC с кодом 1754: RPC_S_NOTHING_TO_EXPORT
.
Похоже, это происходит в середине сеанса. Пользователь некоторое время входит в систему, совершая успешные вызовы, затем один из вызовов необъяснимым образом возвращает эту ошибку. Насколько мы можем судить, сервер не получает никаких признаков того, что что-то пошло не так, и он определенно не видит вызов, сделанный клиентом.
Код ошибки, по-видимому, также имеет постоянное значение. При повторной попытке клиента соединение не работает. Однако, если пользователь имеет несколько активных сеансов одновременно между одним и тем же клиентом и сервером, другие соединения не затрагиваются.
По сути, у меня есть два вопроса:
Кто-нибудь знает, что означает RPC_S_NOTHING_TO_EXPORT
? Документация MSDN просто гласит: "No interfaces have been exported."
... А? До этого момента сессия работала нормально для многочисленных экземпляров одного и того же вызова ...
У кого-нибудь есть идеи относительно того, как определить реальную проблему? Примечание : Захват сетевого трафика - это то, чего мы бы лучше избегали, если это возможно, поскольку проблема носит достаточно эпизодический характер, поэтому мы, вероятно, пройдем несколько гигабайт трафика перед тем, как столкнуться с вхождением.