Что означает код HRESULT 0xC00D0031 (NS_E_OPEN_FILE_LIMIT)?

 
Предыдущий Следующий
NS_E_FILE_BANDWIDTH_LIMIT NS_E_BAD_CONTROL_DATA

NS_E_OPEN_FILE_LIMIT

Диагностика NS_E_OPEN_FILE_LIMIT

NS_E_OPEN_FILE_LIMIT указывает на конкретную границу устаревшего серверного тракта Windows Media Services/NetShow: клиент исчерпал допустимое число одновременно открытых файлов. Для NS_E_OPEN_FILE_LIMIT, рассматривайте код как результат компонента, которому принадлежит эта граница, а не как доказательство отказа всех частей streaming, storage или network.

Что зафиксировать до повторной попытки

Зафиксируйте идентичность publishing point, title или archive, canonical path, service account, open mode, размер и rate файла, результат filesystem и точную lifecycle operation. Для NS_E_OPEN_FILE_LIMITсохраните первый результат Win32, socket, storage, parser или plug-in, появившийся до NS_E_OPEN_FILE_LIMIT; этот HRESULT часто является итоговым результатом на стороне сервера.

Где возвращается результат

Media server открывает content от имени своей service identity и через собственный publishing-point path. Наличие файла, canonical naming, sharing mode, allocation, archive state и возможность parse/stream являются независимыми проверками.

Контролируемая последовательность диагностики

Чтобы проверить NS_E_OPEN_FILE_LIMIT, сначала воспроизведите исходный вызов с тем же объектом сервера и тем же содержимым. Затем для NS_E_OPEN_FILE_LIMIT, сохраните первый результат filesystem, disk или socket под этим отображением и проверьте тот же resource от имени service account. Наконец для NS_E_OPEN_FILE_LIMITсоздайте новый запрос или сеанс и убедитесь, что обработка проходит границу NS_E_OPEN_FILE_LIMIT границы, а не просто возвращает другую ошибку более раннего этапа.

Интерпретация наблюдений

НаблюдениеЗначение
Та же операция возвращает NS_E_OPEN_FILE_LIMIT при том же идентификаторе объектаСбой воспроизводится на границе «клиент исчерпал допустимое число одновременно открытых файлов»; исследуйте её владельца до широких изменений системы.
Сначала зарегистрирована ошибка нижнего уровняДля NS_E_OPEN_FILE_LIMIT, используйте этот более ранний результат как основной диагностический сигнал. NS_E_OPEN_FILE_LIMIT может лишь сопоставить его с пространством результатов Windows Media.
Новый сеанс проходит эту проверку, но завершается ошибкой позжеИсходное условие NS_E_OPEN_FILE_LIMIT условие было устранено. Диагностируйте более поздний код как отдельный этап pipeline при проверке «клиент исчерпал допустимое число одновременно открытых файлов».
Сбой относится только к другому клиенту или материалуДля NS_E_OPEN_FILE_LIMIT, сравните конфигурацию конкретного объекта, metadata содержимого и ограничения; это аргумент против исправления всего сервера.

Контрольный список проверки

  1. Зафиксируйте 0xC00D0031, NS_E_OPEN_FILE_LIMIT, точную операцию API или административное действие и время первого появления результата.
  2. Сохраните идентичность publishing point, title или archive, canonical path, service account, open mode, размер и rate файла, результат filesystem и точную lifecycle operation.
  3. Для NS_E_OPEN_FILE_LIMIT, проверьте текущее состояние до его изменения; stateful handles и sessions сервера могут устаревать после reconnect, restart, rebuild или замены media.
  4. Для NS_E_OPEN_FILE_LIMIT, примените одно контролируемое исправление: измените только состояние, относящееся к границе «клиент исчерпал допустимое число одновременно открытых файлов».
  5. Повторите NS_E_OPEN_FILE_LIMIT с новым поколением операции и проверьте как return code, так и ожидаемое поведение stream, file, disk, title или session.

Карта данных для этого кода

АспектЧто проверить
ОбъектДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте выбранный server-side object и проверьте, соответствует ли его идентичность handle вызывающей стороны. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.
СостояниеДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте состояние lifecycle непосредственно перед отказавшим запросом и ожидаемый следующий переход. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.
ВходДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте точный path, address, index, title, stream, device или значение конфигурации, переданное владельцу. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.
Ресурс или пределДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте активные sessions, открытые файлы, bitrate, bandwidth, disk space или другое ограничение этой операции. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.
Нижний уровеньДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте первый результат socket, filesystem, parser, device, registry или component, зарегистрированный до HRESULT. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.
ПоколениеДля клиент исчерпал допустимое число одновременно открытых файлов — признак NS_E_OPEN_FILE_LIMIT, зафиксируйте, сделал ли reconnect, restart службы, rebuild диска или пересоздание объекта исходный handle устаревшим. Это отделяет условие «клиент исчерпал допустимое число одновременно открытых файлов» от общей ошибки другого уровня.

Краткая диагностическая формулировка достигнут предел открытых файлов используется на этой странице только для удобства диагностики; программными идентификаторами остаются NS_E_OPEN_FILE_LIMIT и HRESULT 0xC00D0031.

Технические ссылки

Для автоматизации записывайте символическое имя вместе с числовым HRESULT: оно сохраняет границу подсистемы Windows Media, которую общий COM formatter может скрыть.


Нужно найти другой код? Найти другой код состояния или ошибки.