Изменить сценарий разрешения на выполнение каталога в IIS6 динамически через ASP - PullRequest
1 голос
/ 09 января 2010

Это довольно сложная проблема, надеюсь, у кого-нибудь из вас есть гуру asp / VB. Я пытаюсь динамически установить разрешения на выполнение папки в IIS6 со страницы asp. Я дал серверу полные разрешения для внесения необходимых изменений. Когда я запускаю код, я получаю:

Ошибка выполнения Microsoft VBScript '800a0046'

В доступе отказано: 'GetObject'

/ learning.asp, строка 11

У меня есть сервер с IIS6, на котором запущено несколько веб-сайтов asp. Я использую такой код для создания папки с именем «files»

set fso = Server.CreateObject("Scripting.FileSystemObject")

set folder3 = fso.CreateFolder(Server.MapPath(username & "/files"))

set folder3 = nothing

set fso = nothing

Работает нормально и создает папку с файлами именно там, где я хочу. Тем не менее, новая папка имеет права на выполнение, заданные как «scripts и exe», и мне нужно, чтобы она была «never» или false. Есть системный объект, который вы можете вызвать, чтобы внести это изменение, и у меня даже есть фрагмент кода, который я написал после прочтения другого учебника.

Не работает и выдает вышеуказанную ошибку. Я думаю, может быть, я просто что-то упускаю, но это немного над моей головой. Вот то, что я использовал, но я не знаю синтаксис или что именно вызывать.

Set root = GetObject("IIS://localhost/" & username)

Set newVDir = root.Create("IIsWebVirtualDir","files")

newVDir.Path = "e:\iis3\server2\ADSI"

newVDir.AccessScript = False

newVDir.SetInfo

Я искал в течение 3 дней, пытаясь найти решение этой проблемы, но, видимо, не так много людей занимаются этим, потому что я не могу найти ни одной записи об этом.

Во всяком случае, я не понимаю, что должен делать геобъект, и какой newVDir.path я должен использовать?

Заранее благодарю за любые полезные предложения, которые у вас могут быть.

1 Ответ

1 голос
/ 09 января 2010

Эта статья (см. http://technet.microsoft.com/en-us/library/bb742439.aspx) объясняет, что на самом деле делает GetObject.

Я считаю, что за сценой происходит то, что COM-объект типа "IIS Admin Service" создается (должен быть) для выполнения ваших операций. По умолчанию учетной записи пула приложений IIS не разрешено создавать такой объект. Так что, возможно, стоит это проверить. Откройте Панель управления-> Административные службы, запустите «Службы компонентов». Найдите «мой компьютер» в дереве и там найдите «Служба администрирования IIS». Проверьте разрешения «активация» и «запуск», при необходимости добавьте некоторые.

...