Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Ошибка доступа к 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
1-1151056210
Dok
2006-06-23 13:50
2006.08.06
Как создать комобьект типа IStream?


2-1152941687
Urvin
2006-07-15 09:34
2006.08.06
Как прокрутить содержимое ListView


15-1150718022
pavel_guzhanov
2006-06-19 15:53
2006.08.06
Проблема при переходе с MSSQL2000 на MSSQL2005


2-1153067292
kaif
2006-07-16 20:28
2006.08.06
Хочу покаяться за то, что наговорил про генераторы в триггерах


15-1152268054
sam11
2006-07-07 14:27
2006.08.06
Контейнер графических объектов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский