| Предыдущий | Следующий |
| RPC_S_INTERNAL_ERROR | RPC_S_ADDRESS_ERROR |
RPC_S_ZERO_DIVIDE
Сервер выполнил вызов и получил исключение при целочисленной арифметике
RPC_S_ZERO_DIVIDE является переданным исключением сервера, а не признаком того, что транспорт RPC выполнял деление. Запрос дошёл до серверного выполнения, и код в процедуре диспетчера или вызванной ею функции разделил целое число на ноль. RPC преобразовал ошибку сервера в статус, видимый клиенту.
Отлаживайте сервер на аварийной инструкции и сохраняйте UUID интерфейса, opnum, входные значения и сборку сервера. Проверяйте знаменатели до вычисления, особенно значения, полученные из клиентских счётчиков, скоростей, размеров или конфигурации. Сетевые повторы неуместны, если входные данные не меняются; тот же запрос обычно вызывает то же детерминированное исключение.
Что проверить
- Соберите стек исключения сервера, а не только код ошибки клиента.
- Проверяйте все арифметические операнды, управляемые клиентом, до использования.
- Убедитесь, что клиент и сервер одинаково понимают формат параметров и знаковость.
Ссылки
- Microsoft: исключения RPC и обработка ошибок
- Microsoft: путь выполнения серверного диспетчера
- Microsoft: статусы исключений сервера RPC
Нужно найти другой код? Найти другой код состояния или ошибки.