| Предыдущий | Следующий |
| NS_E_WMP_COMPONENT_REVOKED | NS_E_CURL_INVALIDCHAR |
NS_E_CURL_NOTSAFE
NS_E_CURL_NOTSAFE в трассировке формата, графа или потоковой передачи
для него (0xC00D1324) решающей границей является запрошенная операция с URL отклонена правилами безопасности до перехода или доступа к файлу. Диагностируйте проверку URL notsafe непосредственно и не выводите причину только из видимого симптома воспроизведения.
До открытия сокета проигрыватель разбирает URL на схему, authority, узел, порт, путь и экранированные данные в контрольной точке notsafe. Он также может объединять относительную ссылку с базовым URL или преобразовывать файловый URL в путь; для каждой операции действуют свои правила допустимости при трассировке пути notsafe. В случае этот результат сохраните самый ранний результат нижнего уровня, поскольку оболочки могут сопоставить несколько разных причин одному HRESULT при контролируемой повторной проверке notsafe.
Близкие результаты не взаимозаменяемы
Главное различие: Ошибки синтаксиса URL возникают до обращения к DNS сервера, выбора прокси или создания сеанса потоковой передачи при сборе данных о notsafe.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_CURL_INVALIDCHAR | Сравните ответственный API и первое отклонённое значение; это соседняя контрольная точка, а не обязательно та же причина, что и у этот результат. |
NS_E_CURL_INVALIDHOSTNAME | По состоянию объекта и порядку операций определите, какой код является определяющим, если оба появляются в одной трассировке в диагностической записи notsafe. |
NS_E_CURL_INVALIDPATH | Сохраните этот результат отдельно, если он появляется только после устранения условия этот результат. |
Анатомия сбоя
Проверка URL notsafe достигается, когда запрошенная операция с URL отклонена правилами безопасности до перехода или доступа к файлу. после него вызывающий код не должен предполагать, что существует следующий фильтр, пакет, сеанс или состояние метаданных.
В качестве отрицательного контроля сначала выполните только разбор, затем сравните политику безопасности для того же нормализованного URL без перехода по нему как отрицательный контроль при контролируемой повторной проверке notsafe. Более поздний HRESULT означает, что эта контрольная точка пройдена, а новый результат относится к другой стадии при сборе данных о notsafe.
Эксперимент с одним компонентом URL
- Запишите
0xC00D1324, он, точную операцию и время первого сбоя до закрытия инцидента notsafe. - Сохраните исходную неизменённую строку, число символов, кодировку, базовый URL при его наличии, разобранные схему, узел, порт и путь, а также требуемую и предоставленную длины выходного буфера в диагностической записи notsafe.
- Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданный до изменения соответствующей конфигурации или ресурса при выделении случая notsafe.
- Выполните один изолированный тест: сначала выполните только разбор, затем сравните политику безопасности для того же нормализованного URL без перехода по нему в контрольной точке notsafe.
- Повторите действие через тот же API и тот же протокольный путь; другой проигрыватель или локальная копия полезны только для сравнения, но не доказывают исправление проверки URL notsafe.
- Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат при контролируемой повторной проверке notsafe.
Сохранение исходного и разобранного URL
| Что зафиксировать | Как это помогает выделить он |
|---|---|
| Ответственный вызов | Запишите метод API, идентичность объекта, поток или обратный вызов и метку времени для проверки URL notsafe. |
| Решающие значения | исходная неизменённая строка, число символов, кодировка, базовый URL при его наличии, разобранные схема, узел, порт и путь, а также требуемая и предоставленная длины выходного буфера до закрытия инцидента notsafe. |
| Поколение объекта | Отметьте, когда были созданы объект чтения, записи, граф, объект URL, сеанс потоковой передачи или поставщик метаданных; устаревшее состояние может повторно вызывать он после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до него; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо исправный ресурс, проходящий ту же проверку URL notsafe, и измените только отклонённое предусловие. |
Что доказывает результат анализатора
| Результат повторной проверки | Толкование для него |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения, управляющие проверкой URL notsafe, не изменились либо вызывающий код по-прежнему использует старое поколение объекта. |
| Новый объект работает успешно | Время жизни или кэшированное состояние способствовало появлению он; исправьте повторное создание объекта вместо применения обходного решения ко всей системе при контролируемой повторной проверке notsafe. |
| Вызов доходит до другого HRESULT | Граница проверки URL notsafe пройдена. Диагностируйте новый код на его собственной стадии формата, графа, URL, сети или метаданных до закрытия инцидента notsafe. |
| Ошибка возникает только для одного ресурса | Данные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий отказ в диагностической записи notsafe. |
Действия, вводящие в заблуждение
- слепое декодирование и повторное кодирование всего URL может изменить зарезервированные разделители и идентичность ресурса при выделении случая notsafe.
- Не стирайте данные о первом появлении он многократными повторными попытками; обратные вызовы и повторные соединения могут заменить полезное состояние более поздней обобщающей ошибкой в контрольной точке notsafe.
- Не публикуйте учётные данные, материалы защищённого содержимого или полные частные URL при трассировке пути notsafe. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения проверки URL notsafe.
Технические источники
- RFC 3986: общий синтаксис URI
- Обработка URL с помощью WinINet
- CreateUri
- ParseURL
- Реестр HRESULT Microsoft
Считайте он устранённым только тогда, когда тот же путь API проходит эту контрольную точку; успех в другом проигрывателе или с кэшированной копией является лишь дополнительным подтверждением при сборе данных о notsafe.
Нужно найти другой код? Найти другой код состояния или ошибки.