Я работаю над проектом .NET, который использует сервер Microsoft SQL. В этом проекте мне нужна хранимая процедура CLR (написанная на C #), которая использует удаленную веб-службу. Таким образом, когда хранимая процедура выполняется на сервере SQL, она выполняет вызовы веб-службы и, таким образом, отправляет пакеты в удаленное место. Проблема в том, что при выполнении SP я получаю: «System.Net.WebException: запрос завершился неудачно со статусом HTTP 403: запрещено».
Пользователь базы данных имеет полное разрешение, развернутая сборка CLR и SP даже помечены как «небезопасные», я пытался подписать его и т. Д., Так что все это не вызывает проблемы.
Когда я выполняю тот же самый код C #, но из простого консольного приложения, а не как SP, все работает нормально. Итак, я начал подозревать проблему, связанную с сетью, и у меня был запущен анализатор пакетов при выполнении как версии SP, так и версии консольного приложения.
Я понял, что отправляемые пакеты имели разные IP-адреса назначения: консольное приложение отправляло пакеты непосредственно на IP-адрес веб-службы, в то время как SP отправлял пакеты на прокси-сервер, который мы используем в нашей компании. Последнее не разрешено из-за сетевых политик, что и объясняет исключение «403 Forbidden».
Итак, мой вопрос сводится к следующему: как я могу настроить сервер SP / MS SQL, чтобы НЕ использовать этот прокси? Я хочу, чтобы он отправлял пакеты прямо на IP-адрес веб-службы, как и приложение тестовой консоли. (опять же, код C # тот же, так что это не вопрос программирования).
Я отключил все настройки прокси в Internet Explorer на случай, если сервер SQL унаследует эти настройки или что-то в этом роде. Однако не повезло.
Любая помощь будет принята с благодарностью!
С уважением, Питер