Имя: Пароль:
1C
1С v8
Couldn't connect to server при вызове метода Веб-сервиса
0 sereban
 
02.04.14
13:42
Имеется веб-сервис опубликованный через IIS 7 на одном из серверов внутри домена по внутреннему адресу http://192.168.32.182:8090/base1/ws/lichkab.1cws

Проверяю при помощи обработки, которая вызывает метод веб-сервиса, все работает отлично.

Но это веб-сервис должен быть доступен по внешнему адресу. Админ пробрасывает порт с нашего внешнего адреса:
НашВнешнийIP:10090 ==>> 192.168.32.182:8090

Проверяю через браузер: ввожу адрес
http://НашВнешнийIP:10090/base1/ws/lichkab.1cws

1С запрашивает авторизацию, ввожу логин и пароль, авторизация проходит, появляется ссылка на
http://НашВнешнийIP:10090/base1/ws/lichkab.1cws?wsdl
При переходе по ссылке браузер пишет, что не может отобразить страницу
  

Проверяю обработкой через внешний адрес. Ошибка:

Встроенный язык: Строка 7: Ошибка при вызове метода контекста (GetKvitPdf): Ошибка вызова операции сервиса:  {http://www.LichKab.org}:LichKab:GetKvitPdf()
по причине:
Неизвестная ошибка. Ошибка работы с Интернет:  Couldn't connect to server
по причине:
Ошибка работы с Интернет:  Couldn't connect to server

//код из обработки
ОпределениеВС = Новый WSОпределения("http://НашВнешнийIP:10090/base1/ws/lichkab.1cws?wsdl","login","***";);
СсылкаВС = Новый WSПрокси(ОпределениеВС, "http://www.LichKab.org";, "LichKab", "LichKabSoap");

СсылкаВС.Пользователь = "login";
СсылкаВС.Пароль = "***";

ФайлСервис = СсылкаВС.GetKvitPdf("1234567890");//ошибка в этой строке

Настройку веб-сервиса делал как написано тут: http://yvgbiz.blogspot.ru/2010/09/1-8.html
1 sereban
 
02.04.14
13:44
Собственно вопрос, если по внутреннему адресу работает, то почему может не работать при обращении по внешнему, если проброс идет на этот же внутренний адрес?
2 _fvadim
 
02.04.14
13:51
(1)
в конфе, в URI пространствах имён внутренний ip нигде не фигурирует?
пусть админ посмотрит логи/трэйсы на предмет отлупов
3 _fvadim
 
02.04.14
13:51
ну и логи iis посмотреть, мож он чудит
4 sereban
 
02.04.14
14:56
Нашел проблему.Надо было внимательнее смотреть. Ошибся в описании выше:

Проверяю через браузер: ввожу адрес
http://НашВнешнийIP:10090/base1/ws/lichkab.1cws

1С запрашивает авторизацию, ввожу логин и пароль, авторизация проходит, появляется ссылка на
http://НашВнешнийIP:8090/base1/ws/lichkab.1cws?wsdl

Вот тут и ошибка. IIS генерит ссылку на wsdl с портом 8090, а не 10090, по которому я обращаюсь. Это что получается: IIS думает, что он на порту 8090 и при обращении по внешнему адресу пишет не правильный порт для внешнего адреса. Попробовал сделать одинаковые порты - работает.

Конечно можно и так оставить. Но может какую-то настройку сделать в IIS и заработает с разными номерами портов у внутреннего и внешнего адреса?))