У меня есть веб-сервис с веб-методом, который перекликается с тем, что вы его передаете.Call Web Service от SQL Server
Я пытаюсь вызвать свой веб-метод из кода T-SQL, но он не работает и не дает никаких исключений или ошибок.
Вот код:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Exec sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
'http://vserver250:8600/EcomSmsSvc.asmx/Reply?message=hi','false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
Мой веб-сервис работает нормально, и когда я называю его через веб-браузеры это возвращает сообщение я посылаю его, но когда я называю его из T-SQL результат всегда NULL
.
Может ли кто-нибудь помочь мне узнать, где проблема?
Если вам действительно нужно вызвать веб-службу из T-SQL (плохая идея, на мой взгляд), я бы рекомендовал использовать функциональность SQLCLR (а не неуклюжий старый подход 'sp_OAmethod'). Создайте хранимую процедуру C# с использованием SQL-CLR и разверните ее в SQL Server –
благодаря обеспечению четкого решения @marc_s. Можете ли вы рассказать мне, как подать пример? –
Поиск Google или Bing для «использования хранимой процедуры sql-clr» - есть ** тонны ** материала по этому вопросу. У меня нет конкретной ссылки, которую я мог бы порекомендовать - вам нужно провести какое-то исследование самостоятельно! –