Использование веб-сервиса с vbscript - «Произошла ошибка операций». - PullRequest
1 голос
/ 26 июля 2010

Я немного возился с веб-сервисами c # и vbscript.Все работает хорошо, если я запускаю сервисы вручную через IE непосредственно на веб-сервере, но когда я пытаюсь запустить тот же сервис из vbscript, он выдает «Произошла ошибка операций».исключение.

Служба довольно проста, все, что она делает, это создает компьютерный объект в Active Directory.

DirectoryEntry Container = new DirectoryEntry("LDAP://ldapgw/" + LDAPLocation); 
DirectoryEntries ComputerOU = Container.Children; 
DirectoryEntry ComputerObject = ComputerOU.Add("CN=" + ComputerName, "computer"); 
ComputerObject.InvokeSet("sAMAccountName", ComputerName); 
ComputerObject.InvokeSet("description", "Reserved"); 
ComputerObject.InvokeSet("userAccountControl", 4128); 
ComputerObject.CommitChanges(); 

Это срабатывает следующим образом:

Set soap = CreateObject("Msxml2.XMLHTTP") 

soap "POST", URL, false, username, password 

soap.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
soap.setRequestHeader "SOAPAction", nsURL + service 

soap.send xml

IЯ предполагаю, что это как-то связано с разрешениями, но я не могу понять, что.Я использую олицетворение, и если я вывожу WindowsIdentity.GetCurrent(), он, кажется, работает как правильный пользователь, который имеет необходимые права в AD.

Кто-нибудь знает, что я делаю не так?

1 Ответ

1 голос
/ 05 августа 2010

попробуйте сохранить свой код внутри этого блока

Using HostingEnvironment.Impersonate()
....you code....
End Using

Это будет выдавать себя за учетную запись из пула приложений при аутентификации в AD. Если удостоверение пула приложений имеет правильный доступ к AD, оно будет работать как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...