Элемент управления ActiveX не имеет доступа к файловой системе, когда страница генерируется программно
Мы работаем над использованием стороннего элемента управления ActiveX на веб-странице. Наша страница включает JavaScript для доступа и управления элементом управления. Часть функциональности элемента управления требует доступа к файлам в локальной файловой системе.
Если мы генерируем страницу программным способом, эта функция перестает работать - элемент управления ActiveX не может получить доступ к файловой системе. Если мы возьмем сгенерированный исходный код страницы, скопируем его в статический файл и подадим этот файл с того же веб-сервера, все будет работать как положено - элемент управления ActiveX получает необходимую ему информацию из файловой системы, и мы весело идем по нашему пути.
Я использовал отладчик JavaScript для обхода двух разных страниц и убедился, что вызовы элемента управления ActiveX имеют одинаковые параметры. Я проверил, что и статическая страница, и динамическая страница перечислены в "Зоне локальной интрасети" в IE, поэтому они должны иметь одинаковые ограничения безопасности.
Я использовал ProcessMonitor от SysInternals, чтобы увидеть, что делает элемент управления ActiveX в системе и что отличается. Интересно, что когда вызовы к элементу управления завершаются успешно, появляются трассировки ProcessMonitor, показывающие, где элемент управления запрашивает в реестре имена файлов и обращается к файловой системе. Когда процесс завершается неудачно, это не тот случай, когда возникают ошибки при доступе к файловой системе, а скорее, элемент управления никогда не запрашивает реестр, чтобы найти имя файла, и никогда не пытается попасть в файловую систему.
Производитель этого элемента управления озадачен, и у меня закончились идеи, что попробовать. Есть ли что-то, что я должен проверить? Некоторое различие между динамически генерируемыми страницами и статическими страницами, которые IE или элемент управления ActiveX могут обнаружить, может ли поведение измениться? URI другой, статическая страница имеет расширение ".html".... Насколько я могу судить, не так много другого.
Любые идеи будут приветствоваться....
1 ответ
Мы выяснили, в чем дело, и эффективно обнаружили ошибку в элементе управления ActiveX стороннего производителя.
У них есть функция, с помощью которой они могут по желанию проверять URL-адрес страницы, на которую загружен элемент управления, или они могут настроить элемент управления с использованием подстановочного знака, который должен соответствовать любому URL-адресу. Поставщик работал с нами, настроил элемент управления с помощью шаблона, и заверил нас, что это не может быть проблемой.
Когда мы заменили подстановочный URL-адрес в конфигурации элемента управления на наш фактический URL-адрес, элемент управления начал работать. Насколько мы можем судить, вчера весь день мы боролись с ошибкой в обработке шаблонов элемента управления.