Мастер-Web:Дополнительный модуль Сервис TourML Ответы на часто задаваемые вопросы

Материал из Megatec
Перейти к: навигация, поиск

Статья находится на стадии разработки.
Версия статьи от 7-02-2013. Вопрос

У нас стоит веб-сервис, но мы не можем воспользоваться методом GetValidTourList. Как мы можем получать данные?

Ответ

Для доступа к сервис необходимо использовать авторизацию посредством логина и пароля. Веб-сервис поддерживает различные виды авторизации (виды авторизации зависят от настроек веб-сервиса на стороне оператора). По умолчанию всегда поддерживается WSE авторизация


Вопрос

Получили пример работы, но мы не используем .net при разработке. У нас PHP. Если у вас есть примеры на PHP?

Ответ

В настоящий момент примеров на PHP нет. Но в коде на C# не очень сложно разобраться как воспользоваться альтернативными методами аутентификации (кроме WSE, который для реализации на PHP слишком сложен). Более подробно об альтернативных методах можно ознакомиться в разделе ”Авторизация без использования WSE”.


Вопрос

При обращении к сервису у нас возникает ошибка: System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения (provider: Поставщик именованных каналов, error: 40 - Не удалось открыть подключение к SQL Server).

Ответ

Проблема в настройках веб-сервиса. Оператор должен исправить строку подключения к базе данных в файле настроек сервиса web.config. В данной строке указывается адрес сервера, база данных, логин и пароль учетной записи, под которой работает веб-сервис.


Вопрос

На все запросы мы получаем такую вот ошибку:

System.Data.SqlClient.SqlException: Login failed for user 'user1'. Reason: The account is disabled.

Ответ

Проблема связана с настройками SQL сервера на стороне оператора. Обратитесь к техническим специалистам оператора с просьбой решить проблему.


Вопрос

При попытке получить список спецпредложения сервис возвращает ошибку - 500 - внутренняя ошибка сервера.

Ответ

Если Вы используете браузер Internet Explorer, то при возникновении любой ошибки на этапе авторизации возвращается HTTP 500 - Внутренняя ошибка сервера. Internet Explorer скрывает текст возникшей ошибки. В данном случае стоит воспользоваться каким-либо альтернативным браузером (Opera, Mozilla), где сообщение от сервера выведется на экран. Также текст ошибок можно получать, воспользовавшись логгерами Http, которые отслеживают запросы\ответы по этому протоколу.


Вопрос

Мы — компания ООО”*****”. Продлите, пожалуйста, нам пароль для доступа к сервису TourML оператора *******.

Ответ

Продление логинов осуществляется компанией Мегатек только по запросу по электронной почте со стороны ответственных сотрудников туроператора. Для решения вопросам обратитесь к представителем оператора.


Вопрос

Пытаемся получить ответ на запрос AgreementsByNumber сервиса компании *****. В ответе возвращается сообщение об ошибке System.Web.Services.Protocols.SoapException: You are not allowed to use this function

Ответ

Используемый Вами логин не позволяет получить доступ к этой функции. Обратитесь к оператору для получения другого логина или для разрешения на использование функции для текущего логина.


Вопрос

У меня возникает ошибка при обращении к методу GetPriceListByTour: Server did not recognize the value of HTTP Header SOAPAction: http://tourml.ru/service/2004-08-13/products/GetPriceListByTour.

Ответ

Дело в том что в последних версиях сервиса этот метод (GetPriceListByTour) не доступен. В место него нужно использовать метод GetSPOPageByKey.


Вопрос

У вас на сервисе стоит ограничение длин страниц СПО в 5000 прайсов. Есть ли возможность увеличить этот лимит?

Ответ

Такое ограничение было введено в целях защиты серверов операторов от излишней нагрузки. В некоторых случаях даже 5000 является большим значением (в случае многоотельных туров с большим количеством размещений). В большинстве случаев на выгрузку с ограничением 5000 требуется порядка нескольких секунд. Увеличение лимита невозможно.


Вопрос

Нам на сайт нужно вывести информацию о туре. Согласно описанием методов и все работает автоматически, все подгружается и выводиться на экран.

Ответ

Сервис автоматически ничего не выкладывает. Для того чтобы сервис вернул данные нужно вызвать тот или иной метод. То есть нужен именно какой-то код на странице, который будет эти методы вызывать. В качестве ответа сервис возвращает XML (TourML), в котором описаны, например, СПО. Затем, имея такую информацию в виде XML, Вы можете сформировать нужную Вам страницу самостоятельно.


Вопрос

При работе с веб-сервисом возникает ошибка: reasonLat="Инициализатор типа "Megatec.Common.BusinessRules.Users" выдал исключение в Megatec.Common.BusinessRules.Users..ctor(DataContainer dataCache)....

Ответ

Скорее всего, веб-сервис работает от имени пользователя “sa”. Программный комплекс мастер-тур не позволяет работать под таким пользователем. Необходимо указать другого пользователя, под которым может работать веб-сервис. Для этого необходимо в строке подлкючения заменить логин/пароль пользователя в конфигурационном файле веб-сервиса


Вопрос

В документации указано, что при использовании авторизации через GET строку необходимо передавать зашифрованный хеш-пароля, а не пароль в явном виде. Как нам получить хеш-пароля.

Ответ

Существуют различные методы получения хеша в разных средствах разработки. Для более детальной информации обратитесь к соответствующей документации к средству разработки.

Также Вы может воспользоваться возможностью, которая есть в примере работы с веб-сервисом (данный пример входит в состав дистрибутива и поставляется в виде архивного файла ServiceClient.zip). Распакуйте все содержимое архива в любой рабочий каталог и запустите программу ServiceClient.exe
Ds075.png
На экране появится окно примера работы с веб-сервисом:
Ds076.png
Введите в поле пароль Ваш пароль, используемый для доступа к web-сервису. При этом в поле base64(SHA-1) отображается хеш пароля.