Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

Ошибка доступа к XML файлу через msxml   Найти похожие ветки 

 
mac117   (2006-07-05 19:42) [0]

а проблема вот в чем.
Есть скрипт на ASP, который использует msxml,

   set SCXMLObj=Server.CreateObject("MSXML2.DOMDocument")
   SCXMLObj.async=false
   SCXMLObj.load("ex.xml")

при попытке загрузить XML файл, IIS выдается сообщение

msxml3.dll error "80070005"
Access is denied.


Права доступа на целевой XML файл неоднократно просматривал, залогиненый пользователь имеет возможность читать и исполнять XML-файл.

Подскажите пожалуйста, как решить эту проблему

Заранее благодарю


 
umbra ©   (2006-07-05 19:48) [1]

права залогиненого пользователя и права клиента HTTP-сервера - совешенно разные вещи. Проверьте права клиента


 
mac117   (2006-07-05 20:08) [2]

что имеется ввиду под словами "клиент HTTP-сервера" - это учетная запись Windows под которой зашел юзер через IE, или учетная запись HTTP-сервера, от имени которой собственно и работает IIS?

с правами доступа к файлу все нормально
и юзер IUSR_<имя машины>
и юзер с учетной записью Windows имеют права на чтение и выполнение xml-файла


 
umbra ©   (2006-07-05 20:13) [3]


> "клиент HTTP-сервера" - это учетная запись, под которой
> зашел юзер через IE

это учетная запись HTTP-сервера (т.е. IIS, а не Винды!)
А MSXML2.DOMDocument вообще создается?


 
mac117   (2006-07-05 20:19) [4]


> А MSXML2.DOMDocument вообще создается?


конечно создается, иначе ссылка на него была бы как Nothing
ну а у Nothing как бы свойств нет, соответсвенно строчка
SCXMLObj.async=false
вызывала бы ошибку

На счет прав доступа. Поидее если есть ошибка с правами доступа на сам файл, то при попытке его открыть, указав к нему путь, IE б выплюнул какую нить ошибку типа 404. Такая ошибка не наблюдается


 
umbra ©   (2006-07-05 20:36) [5]

как следует из мсдн, это ошибка СОМ, а не файловой системы. Т.е. MSXML2.DOMDocument все-таки создется некорректно


 
mac117   (2006-07-05 20:39) [6]

и как с этим бороться?


 
palva ©   (2006-07-05 21:01) [7]

> SCXMLObj.load("ex.xml")
По-моему, здесь надо указывать полный путь к файлу. Например, так:
SCXMLObj.load(Server.MapPath ("ex.xml"))
Без этого сервер лезет за файлом не в ту директорию, в которой ему даже запрещен просмотр списка файлов. Отсюда сообщение Access is denied. Возможно, я не прав.


 
mac117   (2006-07-05 21:20) [8]

Да, я тоже думаю что проблема с путем.

при указании пути в DOS формате все нормально работает. Файл находится.

Т.е. код

SCXMLObj.load("C:\lala\ex.xml")
работает.

На http://support.microsoft.com/kb/281142/      указано, что нужно установить  свойство

SCXMLObj.setProperty "ServerHTTPRequest", true
чтобы грузить файл по HTTP, значит поидее и путь должен быть в формате HTTP, однако загрузка не проходит.

При комбинации

SCXMLObj.setProperty "ServerHTTPRequest", true
SCXMLObj.load("http://myserver/ex.xml")

файл не грузится, но ошибка о том, что нет доступа, уже не отображается.


 
palva ©   (2006-07-05 21:28) [9]

По идее ваш файл ex.xml не должен быть виден из Интернета другим пользователям, поэтому сервер не должен его отдавать по http. Если бы такое происходило, это была бы ошибка в обеспечении безопасности. Вэб-сервер должен загружать файл по файловой системе. Стандартный способ, как определяется физический путь, я уже привел.


 
mac117   (2006-07-05 21:40) [10]

Я с вами согласен. Но в Microsoft приводят ряд примеров загрузки XML c других серверов по средствам ServerXMLHTTP, который и позволяет грузить XML по HTTP.

Кстати установкой
SCXMLObj.setProperty "ServerHTTPRequest", true

мы и включаем этот режим.
Только вот чегото он не работает :)


 
palva ©   (2006-07-05 21:57) [11]

Я ничего не знаю про ServerHTTPRequest. Я, правда, не пробовал загружать XML-файлы из ASP с других серверов. А свои я всегда грузил указанным выше образом без установки setProperty.


 
mac117   (2006-07-06 10:43) [12]

Спасибо всем за помощь.



Страницы: 1 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
6-1143130382
RusGl
2006-03-23 19:13
2006.08.06
idHTTP, SSL и Connection Closed Gracefully


4-1145147097
Volf_555
2006-04-16 04:24
2006.08.06
Как изменять значок программы в трэи по необходимости?!


2-1153247328
FTPDigger
2006-07-18 22:28
2006.08.06
Не менее 6-ти вопросов по FTP функциям


15-1152613746
SoftService
2006-07-11 14:29
2006.08.06
J2ME compiler


2-1152720693
TStas
2006-07-12 20:11
2006.08.06
Как зовут функцию, обраную ExtractRelativePath?