Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
juwdoks
Member

Откуда:
Сообщений: 144
Бьюсь над проблемой с msxml3.dll
Выкидывает ошибку при вызове метода send (Параметр задан неверно.). Аналогично и для msxml6.dll.
Под более старыми конфигурациями win+sql работало (по памяти говорю, под рукой нет), да и в инете таких жалоб наблюдается.

Текущий сервер: Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) Enterprise on Windows NT 6.2
ОС: Win 2012

Единственный успешный (наверное) вариант нашел такой (грубая сила):
SOLUTION:
I copied C:\Windows\System32\msxml3.dll from a Server 2008 to the same dir on a server 2012. Problem on 2012 server solved, sending with POST and GET working fine.


Но так делать не хочется, сервер я не админю.
Есть какие-то нормальные пути? Код вызова обычный, как во многих разных постах тут.

Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Declare @ErrCode	Int;
 
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'post','http://example.com/Authentication.asmx','false'
Exec sp_OAMethod @Object ,'setRequestHeader'	,NULL ,'Content-Type'	,'text/xml; charset=utf-8'
Exec sp_OAMethod @Object ,'setRequestHeader'	,NULL ,'SOAPAction'	,'"http://www.example.com/Login"'
Exec @ErrCode=sp_OAMethod @Object, 'send',null,'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <Login xmlns="http://www.example.com/">
      <databaseName>db1</databaseName>
      <userName>login</userName>
      <password>pass</password>
    </Login>
  </soap:Body>
</soap:Envelope>'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ErrCode,@ResponseText
Exec sp_OADestroy @Object


Пробовал и MSXML2.XMLHTTP и MSXML2.XMLHTTP.6.0
Всё время ошибка -2147024809, ну и, соответственно, до responseText дело не доходит :(
5 ноя 14, 15:03    [16801201]     Ответить | Цитировать Сообщить модератору
 Re: Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Вы уверены, что требуемый парсер установлен?
5 ноя 14, 15:08    [16801242]     Ответить | Цитировать Сообщить модератору
 Re: Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
juwdoks
Member

Откуда:
Сообщений: 144
Нет... А как проверить? Я не совсем понял, парсер чего? Xml?
5 ноя 14, 15:17    [16801304]     Ответить | Цитировать Сообщить модератору
 Re: Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
CAUSE:

MSXML 3.0 is not working on the machine or MSXML3.dll may be missing from “Windows\SysWOW64” & Windows\System32.

RESOLUTION:

1) Copy the MSXML3.dll to “Windows\SysWOW64” & Windows\System32.

2) Register the MSXML3.dll with the help of command line:

Regsvr32.exe <path to MSXML3.dll> MSXML3.dll
5 ноя 14, 15:27    [16801365]     Ответить | Цитировать Сообщить модератору
 Re: Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
juwdoks
Member

Откуда:
Сообщений: 144
Есть и там и там, все системой залочены.
5 ноя 14, 15:34    [16801408]     Ответить | Цитировать Сообщить модератору
 Re: Версия msxml3.dll в контексте sp_OAMethod 'send'  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
juwdoks
Есть и там и там, все системой залочены.


залочены?
сделайте тестовый vbs и погоняйте на разных версиях msxml
5 ноя 14, 15:40    [16801451]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить