|
Проблема с веб сервером | ☑ | ||
---|---|---|---|---|
0
alf2006x
01.08.22
✎
00:03
|
Всем доброй ночи.
Год назад сделал крутую систему ("сам себя не похвалишь..."), но она год лежала непотребная. И вот, когда понадобилась - выяснилось что не работает. Починить нужно c-срочно, а предметных знаний явно не хватает. Что и где надо чинить - не догоняю. Большая просьба помочь. Желательно сегодня. Амбула. Есть рабочая ИБ, на сервере в "Стек Телекоме". Доступ туды только с разрешения Стек Телекома. Тут всё норм. Безопасность превыше всего! Есть подножный сервер в офисе с разрешённым доступом к "телу" (к серверу с базой). Задача (ранее уже решённая): всем желающим пользоваться нашим АПИ даётся доступ к офисному серверу по https (автообновляющийся SSL от LetsEncrypt). Далее все запросы пробрасываются по обычному http на сервер с базой и ответы возвращаются в обратном порядке до пользователя. Айтишники в июне меняли провайдера на офисном сервере, соответственно поменялся и его айпишник (но сейчас скорее всего проблема уже не в этом, так как вроде все маршруты поправлены) В итоге сейчас вот что. Проброс https - http работает. На сервере с базой в нужном месте лежит файл "api.1cws". Полное содержание файла такое: <?xml version="1.0" encoding="UTF-8"?> <service namespace="http://api.mysite.ru" name="API" connectString="Srvr="localhost";Ref="MyBase";usr="MyApiUser";pwd="MyPass""/> Снаружи, с любого внешнего места файл https://api.mysite.ru/v1.0/api.1cws?wsdl видится великолепно. Без проблем загружается в WS-ссылки. Все очень замечательно. Но методы никак не хотят вызываться. Просто зависает и пишет что ошибка таймаута. Строка: WSПрокси = WSСсылки.WSСсылка1.СоздатьWSПрокси("https://api.mysite.ru", "API", "APISoap12",,,Новый ЗащищенноеСоединениеOpenSSL); создаёт проксю А вот следующая строка: WSПрокси.Ping() зависает наглухо и вылетает через 10-20 секунд с ошибкой: "При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {https://api.mysite.ru}:API:Ping() по причине: При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка работы с Интернет: Превышено время ожидания по причине: Ошибка работы с Интернет: Превышено время ожидания" Подозреваю что трабл в аутентификации. Но эт не точно. Помогите кто чем сможет... оч не хочу откатываться от такой модной схемы работы. Ну хотя бы подскажите методу как и где почитать про ошибку чуть побольше информации. А то тут ваще непонятно что именно надо гуглить... |
|||
1
ДедМорроз
01.08.22
✎
00:50
|
Во-первых,скачиваем файл описания web-сервиса и смотрим в нем точки подключения.
Если при пробросе серверу не дали в заголовках реальный ip-адрес,то в точках подключения уепзан внутренний ip-адрес сервера,на который идет проброс и из-вне он просто недоступен. Просто,согласно описанию в файле wsdl могут быть точки подключения на других адресах,то,что 1с так не умеет,не значит,что создатели формата wddl(которые про 1с не слышали)не сделали его универсальным. По-мойму,заголовок ProxyRealIp,сейчас,к сожалению точно его не помню,но в инете можно найти. |
|||
2
ДедМорроз
01.08.22
✎
00:53
|
Через заголовки также нужно объяснить,что соединение https,хотя,реальное соединение к серверу http.
Я просто завтра могу написать,что пишется доя проброса в nginx,но не факт,что у вас через него сделано. |
|||
3
alf2006x
01.08.22
✎
01:30
|
Самое главное забыл сказать: оба сервера на Win Server 2012 R2 + соответственно IIS
А "точка подключения" - это вот это? <service name="API"> <port name="APISoap" binding="tns:APISoapBinding"> <documentation> <wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1"/> </documentation> <soapbind:address location="http://ххх.ххх.ххх.хх/v1.0/api.1cws"/> </port> <port name="APISoap12" binding="tns:APISoap12Binding"> <soap12bind:address location="http://ххх.ххх.ххх.хх/v1.0/api.1cws"/> </port> </service> Если да, то тут у меня "ххх.ххх.ххх.хх" - это вполне себе реальный айпишник того самого сервера с БД. Но по идее, он вызывается после проброса (это, опять же, снова не точно). Год назад в такой конфигурации точно работало. И, кстати, адрес http://ххх.ххх.ххх.хх/v1.0/api.1cws - доступен снаружи (хм...) И, кстати, он доступен только по http. Возвращает /v1.0/api.1cws?wsdl |
|||
4
ДедМорроз
01.08.22
✎
23:32
|
Я бы чем-то ткнулся из-вне в этот адрес и посмотрел бы,что там реально.
|
|||
5
ДедМорроз
01.08.22
✎
23:34
|
Точка подключения внутри wsdl,там где описание методов.
Просто посмотри скачанный wsdl - какие там есть адреса и методы. |
|||
6
Деспот_1С
02.08.22
✎
08:36
|
(0) В IIS наверное поменяли кучу всего, верни все в IIS в исходное положение, когда все работало
|
|||
7
Деспот_1С
02.08.22
✎
08:37
|
(6) Там в IIS 2 значения надо поменять. Одно из которых надо поставить в true, какое не помню, гугли
|
|||
8
alf2006x
02.08.22
✎
09:21
|
Да, после того, как всё сломалось поменял кучу всего в попытке всё настроить.
Хорошая новость в том, что пришлось всё-таки сделать мега-костыль. Теперь у меня на офисном серваке пустая база "пробрасыватель запросов". )) Народ начал работать. Теперь спокойно буду гуглить и пробовать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |