Ошибка soap сервера 1с
Дополнительные сведения можно найти в разрешениях 6, 7, 8 и 9.
Дополнительные сведения можно найти в разрешениях 6, 7, 8 и 9.
Ознакомьтесь с разрешениями 6 и 9
Дополнительные сведения можно найти в разрешениях 6, 7, 8 и 9.
Дополнительные сведения о разрешениях 7 и 9
Клиент: не удалось загрузить запрос в SoapReader. HRESULT = 0x80070057: неверный параметр. -Клиент: ошибка "неопределенный клиент". HRESULT = 0x80070057: неверный параметр. FaultCode = Client.
Дополнительные сведения можно найти в разрешениях 6, 7, 8 и 9.
Приложению не удается открыть системную базу данных. [DBNETLIB] [ConnectionOpen (соединение ()).] SQL Server не существует или в доступе отказано.Чтобы устранить эту проблему, системный администратор должен запустить pcConfiguration на сервере бизнес-портала.
Дополнительные сведения о разрешениях 5 и 9
Произошла ошибка. Ошибка: произошла ошибка при попытке открыть системную базу данных. (pcconnect)
Дополнительные сведения о разрешениях 1, 2, 3, 4 и 9
Приложение не может считать сведения о подключении к Соломоновы. Чтобы устранить эту проблему, системный администратор должен запустить pcConfiguration на сервере бизнес-портала.
Дополнительные сведения о разрешениях 1, 2, 3, 4 и 9
Не удается подключиться к системной базе данных. Запустите PCConfiguration. Недопустимые имя пользователя и пароль.
Дополнительные сведения о разрешениях 4 и 9
Ошибка: Клиент SOAP: при обработке запроса SOAP произошла ошибка. Недопустимый путь к PCService. asmx, указанному в ProjectService. wsdlYour. чтобы устранить эту проблему, запустите системный администратор pcConfiguration-Update на сервере бизнес-портала.
Ознакомьтесь с разрешениями 6 и 9
Причина
Данные для входа в базу данных Microsoft Dynamics SL отсутствуют или неправильно хранятся в реестре.
Учетная запись в пуле приложений не имеет разрешений на доступ к разделу реестра HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Business Portal\PMA\Solomon
Сервер, на котором запущены службы IIS и SQL Server, должен поддерживать связь с помощью протокола TCP/IP.
Путь к файлу PCService. ASX в файле ProjectService. WSDL указан неправильно
Путь должен указывать на имя сервера IIS
Путь должен содержать номер порта
Путь должен быть URL-адресом, который не является SSL
При использовании заголовков узлов IIS путь должен разрешаться на соответствующий веб-сайт.
Сайт IIS не использует проверку подлинности Windows (NTLM)
Переменная SessionState в файле Web. config задана неправильно
Решение
Разрешение 1- Запуск служебной программы PCConfiguration
Откройте файл PCConfiguration. exe на сервере бизнес-портала и дважды щелкните его, чтобы выполнить. Обычно это расположение находится в папке c:\Inetpub\wwwroot\bin или в папке C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin.
Заполните следующие поля:
Имя сервера SQL Server: введите имя сервера SQL Server, на котором размещаются базы данных Microsoft Dynamics SL.
Системная БД — введите имя базы данных системы Microsoft Dynamics SL.
Пользователь SQL: введите имя пользователя SQL, у которого есть доступ к системной базе данных. "SA" или "BusinessPortalUser" — распространенные параметры.
Password (пароль): введите пароль пользователя, введенного в поле пользователя SQL
Закройте служебную программу и попробуйте еще раз.
Разрешение 2 — проверка файла Microsoft. Соломоновы. PMA. Security. ImpersonateDLL. dll
На сервере бизнес-портала запустите диспетчер информационных служб Интернета (IIS).
Щелкните правой кнопкой мыши веб-сайт бизнес-портала и выберите пункт "Свойства"
На вкладке домашний каталог запишите значение в поле "локальный путь".
На вкладке "домашний каталог" Обратите внимание на значение в поле со списком "Группа приложений".
В диспетчере IIS разверните элемент "пулы приложений". Щелкните правой кнопкой мыши группу приложений, найденную на шаге 4, и выберите пункт "Свойства".
На вкладке "удостоверение" Обратите внимание на пользователя, указанного в качестве удостоверения пула приложений.
Закрытие диспетчера IIS
В проводнике Windows перейдите к каталогу, найденному на шаге 3.
Прокрутите папку bin вниз и найдите файл Microsoft. Соломоновы. PMA. Security. ImpersonateDLL. dll.
Если этот файл отсутствует, может потребоваться переустановка бизнес-портала
Щелкните файл правой кнопкой мыши и выберите пункт Свойства.
На вкладке "безопасность" убедитесь в том, что у пользователя на шаге 7 есть права "чтение" и "чтение & выполнения"
Щелкните файл правой кнопкой мыши и выберите команду "Открыть с помощью. "
Выберите "выбрать программу из списка"
Перейдите в папку C:\Windows\System32 и найдите файл regsvr32. exe и нажмите кнопку "Открыть".
Попробуйте еще раз загрузить страницы рабочего портала
Разрешение 3 : Проверка раздела реестра
На сервере бизнес-портала запустите диспетчер информационных служб Интернета (IIS).
Щелкните правой кнопкой мыши веб-сайт бизнес-портала и выберите пункт Свойства.
На вкладке "домашний каталог" Обратите внимание на значение в поле со списком "пул приложений".
Выберите Пуск-> выполнить и введите RegEdt32. В этом случае следует открыть редактор реестра.
Перейдите на HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Business Portal\PMA\Solomon
Если этот раздел реестра отсутствует, ознакомьтесь с разделом разрешение 1, чтобы запустить служебную программу PCConfiguration
Щелкните правой кнопкой мыши "Соломоновы" и выберите "разрешения"
Убедитесь в том, что пользователь из этапа 3 имеет разрешения "чтение"
Попробуйте еще раз загрузить страницы рабочего портала
Более подробную информацию вы видите в статье базы знаний 912363 .
Разрешение 4 : Проверка файла CAPICOM. dll
Перейдите в папку C:\Windows\System32 на сервере бизнес-портала.
Щелкните правой кнопкой мыши элемент CAPICOM. Файл DLL и выберите пункт "Свойства"
Если этот файл отсутствует, возможно, потребуется скопировать файл с другой рабочей станции или переустановить бизнес-портал.
На вкладке Версия убедитесь в том, что в версии файла отображается 2.1.0.1
Если версия файла неверна, возможно, потребуется скопировать файл с другой рабочей станции или переустановить бизнес-портал
На вкладке Безопасность Убедитесь, что в группе доменные службы есть разрешение чтение и чтение & выполнение прав на этот файл. Ознакомьтесь состатьей базы знаний 927618
Щелкните файл правой кнопкой мыши и выберите команду "Открыть с помощью. "
Выберите "выбрать программу из списка"
Перейдите в папку C:\Windows\System32 и найдите файл regsvr32. exe и нажмите кнопку Открыть.
Попробуйте еще раз загрузить страницы рабочего портала
Чтобы снова запустить служебную программу PCConfiguration, ознакомьтесь с разрешениями 1.
Перезапустите IIS, нажав Пуск-> выполнить и введите "IISReset".
Попробуйте еще раз загрузить страницы рабочего портала
Более подробную информацию вы видите в статье базы знаний 909144 .
Разрешение 5 – Проверка возможности связи сервера IIS и сервера SQL Server с помощью протокола TCP/IP
Протокол TCP/IP должен быть включен как на сервере SQL Server, так и на сервере IIS, на котором размещаются сайты бизнес-портала.
Сведения о том, как это проверить, можно найти в статье база знаний 954024
Разрешение 6 : Проверьте путь к файлу PCService. ASX в файле ProjectService. WSDL
На сервере бизнес-портала откройте файл ProjectService. WSDL. Обычно это расположение находится в каталоге C:\Program Files\Microsoft Dynamics\Business Portal\Applications\PMA.
Открытие файла в блокноте
Прокрутите файл вниз и найдите тег, который начинается со слова "<SOAP: Address Location HTTP://MachineName: 80/BUSINESSPORTAL/PMA/PCService. asmx" у этого URL-адреса есть несколько конкретных требований. Проверьте и, при необходимости, исправьте указанные ниже элементы.
Чтобы найти имя компьютера, нажмите Пуск-> выполнить и введите CMD.
Введите имя узла и нажмите клавишу ВВОД
Должно быть возвращено имя компьютера. Параметр MachineName в URL-адресе должен соответствовать этому значению.
URL-адрес не должен использовать SSL. URL-адрес должен начинаться с "http://", а не "https://"
Если на вашем веб-сайте настроено использование SSL, ознакомьтесь со статьей база знаний 924723 , в которой вы узнаете, как настроить исключение, разрешающее подключение к файлу PCService. asmx без SSL.
URL-адрес должен быть разрешаемым на сайте BusinessPortal в службах IIS.
Это может быть вызвано тем, что при использовании заголовков узлов для различения нескольких веб-сайтов, запущенных на одном и том же сервере.
Более подробную информацию вы видите в статье базы знаний 2005711 .
Теперь, когда у файла ProjectService. WSDL есть допустимый URL-адрес, попробуйте еще раз попробовать на странице бизнес-портала
Разрешение 7 : Проверка способа проверки подлинности в IIS
На сервере бизнес-портала запустите диспетчер информационных служб Интернета (IIS).
Щелкните правой кнопкой мыши веб-сайт бизнес-портала и выберите пункт Свойства.
На вкладке Безопасность каталога в разделе "Управление доступом и проверка подлинности" выберите команду Изменить.
Убедитесь, что установлен флажок Встроенная проверка подлинности Windows.
Убедитесь, что флажок "разрешить анонимный доступ", "Краткая проверка подлинности для серверов домена Windows" и "Проверка подлинности .NET Passport" не установлены.
Проверка подлинности Basic не требуется. Тем не менее, если флажок установлен, это не должно приводить к проблеме.
Закрытие диспетчера IIS
Перезапустите IIS, нажав Пуск-> выполнить и введите "IISReset".
Попробуйте еще раз на странице бизнес-портала
Разрешение 8 : проверка переменной sessionState в файле Web. config
На сервере бизнес-портала запустите диспетчер информационных служб Интернета (IIS).
Щелкните правой кнопкой мыши веб-сайт бизнес-портала и выберите пункт Свойства.
На вкладке "домашний каталог" Обратите внимание на значение в поле "локальный путь".
Перейдите к каталогу, найденному на шаге 3, и найдите файл Web. config.
Создание резервной копии файла Web. config
Откройте файл web.config в блокноте.
Поиск тега, который начинается с "<sessionState"
Изменение всего тега для чтения "<sessionState =" INPROC "/>"
Сохранение файла и закрытие блокнота
Перезапустите IIS, нажав Пуск-> выполнить и введите "IISReset".
Попробуйте еще раз загрузить страницы рабочего портала
Разрешение 9 : запустите сценарий PCConnectDebug и отправьте результаты в службу поддержки.
Распаковка файла на сервере бизнес-портала
Скопируйте файл "pcConnectDebug. ASP" в каталог C:\Program Files\Microsoft Dynamics\Business Portal\Applications\PMA.
На сервере бизнес-портала откройте Internet Explorer и войдите в бизнес-портал.
Щелкните веб-страницу центра проектов
Вставьте следующий URL-адрес, чтобы открыть страницу PCConnectDebug: http://ServerName:Port/BusinessPortal/Applications/PMA/pcconnectdebug.ASP замените значение serverName именем сервера BP. Замените "порт" на номер порта, на котором работает веб-сайт BP.
Откроется веб-страница, которая начинается с "Запуск отладки. ". В Internet Explorer щелкните файл-> сохранить как. и сохраните страницу в файле.
Внимание!в зависимости от того, насколько далеко может быть предоставлена Отладка, результаты могут содержать пароль в открытом тексте. Вы можете изменить файл в блокноте и заменить Фактический пароль на слово "thePassword" перед отправкой файла для поддержки.
Отправьте этот файл службе поддержки пользователей Майкрософт для дальнейшего анализа.
После устранения проблемы удалите файл pcConnectDebug. ASP из каталога C:\Program Files\Microsoft Dynamics\Business Portal\Applications\PMA.
Цель блога описать интересные и полезные примеры программирования в системе 1С:Предприятие 8.
воскресенье, 14 октября 2012 г.
1С:Предприятие 8. Веб-сервисы. Реализация веб-сервиса
После этих действий веб-сервисом можно будет пользоваться. Таким образом будет создан веб-сервис, который сможет оперировать только простыми типами данных.Откройте конфигурацию и в дереве метаданных найдите ветку "Общие - Web-сервисы". Нажмите правой кнопкой и добавьте новый элемент.
Имя веб-сервиса можно задать русское. И платформа его сохранит и опубликует, но рекомендую использовать латиницу в названиях веб-сервисов, ws-операций, параметров ws-операций. Например, chrome не смог отобразить wsdl файл веб-сервиса с русским именем.
Перейдите на вкладку "Прочее" и укажите параметр "URI пространство имен".
В документации об этом параметре написано чуть больше чем ничего, примерно то, что это поле служит для идентификации вашего веб-сервиса. Когда я делал свой первый веб-сервис, мне казалось что это ссылка на сайт, на котором я публикую свой веб-сервис и все наименования буду получаться через запрос к этому сайту. На самом деле "URI пространство имен" не что иное как строка определяющая название набора ваших имен (названий веб-сервиса, операций, параметров, типов данных и т.д.). То есть если вы объявите свой тип "integer" то xml-парсер не будет ругаться, так как этот тип принадлежит вашему пространству имен. Мало того если "URI пространство имен" будет содержать русские символы и не будет соответствовать стандарту как формат URI, платформа все равно опубликует такой веб-сервис, и он будет работать. Но по стандартам рекомендуется использовать URI ссылку. Я советую того же самого.
Простое и понятное объяснение пространства имен можно прочитать тут.
Поле "Пакеты XDTO" не обязательное. Оно определяет набор пакетов XDTO в которых вы можете оказать свои типы значений. Это не обязательное поле, по умолчанию вам всегда доступны типы пространства имен "http://www.w3.org/2001/XMLSchema". О пакетах XDTO я расскажу чуть позже.
"Имя файла публикации", это имя файла, в котором хранятся настройки веб-сервиса для Apache(путь к базе и другие) после публикации. Папка, в которой находится этот файл, определяется при публикации. О публикации на веб-сервере будет рассказано позже.
Веб-сервис создан, но еще нет ни одной функции которую он мог бы исполнить. Надо добавить операцию. Для этого добавьте в созданный веб-сервис операцию. Нажмите не веб-веб-сервис правой кнопкой и выберите "Добавить-Операция". Она будет к вашему операнду прибавлять 2 и возвращать значение. Давайте назовем ее "Plus2". Можно указать и русское название, многие клиенты его обработают, но все же могут возникнуть проблемы.
"Тип возвращаемого значения" это тип описанный в указанном вами пакете XDTO или же тип из пространства имен "http://www.w3.org/2001/XMLSchema". Именно в этом типе веб сервис будет возвращать значение.
"Возможно пустое значение" признак что ws-операция может не вернуть значение( nillable webkit-html-attribute-value" style="font-family: monospace; font-size: 13px;">true " ).
"В транзакции" указывает что код веб-сервиса будет выполняться в транзакции. А "Режим управления блокировкой данных" определяет тип блокировки данных при транзакции по умолчанию.
Установим тип возвращаемого значения в int. В поле "Имя метода" укажем имя "Plus2" для нового метода, который будет выполнять обработку. При нажатии на лупу метод будет автоматом создан в модуле веб-сервиса.
Напишем простой код.
Функция Plus2(Параметр)
Возврат Параметр+2;
КонецФункции
Вы заметили что на входе функции у нас есть параметр "Параметр". Для того что бы в метод этот параметр был передан надо добавить его в дереве метаданных. Для этого щелкните правой кнопкой по веб-операции Plus2 и выберите "Добавить-Параметр".
Давайте назовем его "Param". Названия параметров тоже можно указывать русскими, мало того класс SoapClient языка PHP работает с ними корректно, ведь параметры передаются через массив. Желательно использовать кодировку UTF-8.
Укажем "Тип значения" int из пространства имен "http://www.w3.org/2001/XMLSchema".
В ответе:
err —
result —
Помогите разобраться.
500 ошибка говорит об исключении на стороне сервера 1с. Тут вам нужно получить текст этой ошибки, например развернув полностью result. Если ссылка с ?wsdl в браузере работает, то нужно смотреть в этот самый wsdl и имена/типы параметров, которые передаются в метод. Ну и "мой код" явно криво вырезан.
У меня Result приходит в кодировке Windows1251 (насколько я понял) и я пока не могу найти как его прочитать (примерно вот так приходит - title: '500 - ���������� ������ �������.', ) Как только смогу прочитать что там, сразу отпишусь
Данил, вангую, что это "Внутренняя ошибка сервера." ;) Ну а перекодировать умеет модуль iconv.
Оказалось, что я название параметра указывал рандомное и сервер сыпался от этого. Указал нужное название и все заработало. Спасибо за верное направление для поиска.
Убрал, теперь при
soap.createClient(url, function(err, client)
Получаю:
Unexpected root element of WSDL or include
Данил, ну ?wsdl - Это просто запрос описания сервиса
Очевидно, вы свои запросы не в описание шлете, а в сам сервис
Дмитрий Еремин, Не понял вас :( Что мне сделать чтобы слать в сам сервис?
Дмитрий Еремин, вы бы почитали описание пакета soap. Все там правильно. Клиент получает описание, которое содержит точку подключения, в которую и надо слать запрос. При этом (конечно, не в этом случае :) ) эта точка подключения может быть совсем не "url без wsdl"
Данил, ну, если это чисто академический интерес, то в wsdl файле надо искать тег address и его атрибут location. Более того, в общем случае их может быть более одного :)
в данном примере за это отвечает сам пакет и делать руками ничего не надо.
Нужно смотреть в модуле вот этого вот : "NumerationSF" в строке . Скорее всего неправильно с точки зрения сервиса выглядит содержимое вот этого вот : "СтрокаXML".
А при запросе из soapui этот же запрос срабатывает.
Ну так сравни "СтрокаXML" в 1С и тоже самое в soapui.
"в soapui обертка только есть стандартно." Это как понять? Метод вызывается вообще без параметра?
Сразу несколько вопросов NumerationSF и пространство имен Если хочешь получить объект XDTO из строки то
Ошибка преобразования данных XDTO: НачалоСвойства: < Форма: Элемент Тип: < по причине:
В базе сервиса тип параметра "string", а при создании ws-ссылки "anyType"
используй динамическое подключение если не знаешь какое пространство имен используешь
в браузере string. Не понимаю, почему anyType у меня
Ошибка преобразования данных XDTO: НачалоСвойства: < Форма: Элемент Тип: < по причине: Ошибка преобразования данных XDTO: НачалоСвойства: Body Форма: Элемент Тип: <
по причине: Ошибка преобразования данных XDTO: НачалоСвойства: Body Форма: Элемент Тип: <
откуда anyType, если в браузере и в конфе сервиса string? И что с этим делать?
Если string, тогда зачем ты туда пихаешь ОбъектXDTO? Пихай стринг
Определения = Новый WSОпределения("ссылка на сервис"); Прокси = Новый WSПрокси(Определения, ";;, "NumerationSF", "NumerationSFSoap");
Внимательно посмотри на 12. И посмотри какое пространство имен у WSСервис.URIПространстваИмен
Вообще то это стандартное пространство имен уже зашитое. А кто задал такое имя пространства имен? Если это сервис 1С
Ты бы хоть показал описание WSDL и типы используемые GetNumberSF
вот фрагмент описания: <definitions xmlns="; xmlns:soap12bind="; xmlns:soapbind="; xmlns:tns="; xmlns:xsd="; xmlns:xsd1="; name="NumerationSF" targetNamespace="; <types> <xs:schema xmlns:xs="; xmlns:xs1="; targetNamespace="; elementFormDefault="qualified">
Если в 1с создать ws-ссылку - тип у параметра будет: anyType
Вариант работает, но на вход в процедуру сервиса приходит почему-то Строка, а не ОбъектXDTO. Из SOAPUI приходит ОбъектXDTO. Как сделать, чтоб приходил ОбъектXDTO?
Web-Service самописный? Где находится? Есть доступ к исходникам?
Выдернул из обработки клиент банка. Если не поможет, скидывай wsdl целиком
Измените пространство имен у Веб сервиса Неправильно. targetNamespace=";; Замените на какойнибудь Ну и раз параметр строка Ответ = Прокси.GetNumberSF(СтрокаXML);
Еще раз задай нормальное пространство имен Судя по описанию у тебя параметр строка.
С с чем сравниваешь? Скачай Fiddler2 и смотри им какие запросы кто отправляет
В отладке сервиса - если из 1с запрос приходит - на входе Строка, из других систем - ОбъектXDTO
Ну ты читай, что я тебе пишу в 41 Например Так, а что у тебя реально представляет параметр в сервисе?
Прошу прощения, немного напутал. Если отправляю запрос из SOAPUI - на входе сервиса ОбъектXDTO и все отрабатывает без ошибки. Если отправляю из 1С - на входе тоже ОбъектXDTO, но видимо другой и ошибка появляется при попытке прочитать ОбъектXDTO: Разница в объектах: от SOAPUI в отладке вижу просто ОбъектXDTO; от 1с в отладке видны еще его поля, т.е. тэги xml, которую я передаю. Видимо как-то не так отправляю?
Ваще не пойму - почему туда приходит ОбъектXDTO, а не строка? В моей конфе в сервисы на вход приходит строка всегда, но тут платформа 8.3 (8.3.5.1186), а там 8.3 (8.3.6.1977). Может в платформе дело?
Нет не в платформа, а в способе отправки. Вопрос - почему разные ОбъектXDTO приходят от SOAPUI и от 1с?
Скорее всего у тебя URIПространстваИменСервиса не , а собственные. Посмотри в wsdl какие используются пространства имен.
Читайте также: