Ошибка soap сервера 1с

Обновлено: 08.07.2024

Дополнительные сведения можно найти в разрешениях 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-сервисы". Нажмите правой кнопкой и добавьте новый элемент.

Реализация веб-сервиса в 1с

Имя веб-сервиса можно задать русское. И платформа его сохранит и опубликует, но рекомендую использовать латиницу в названиях веб-сервисов, ws-операций, параметров ws-операций. Например, chrome не смог отобразить wsdl файл веб-сервиса с русским именем.
Перейдите на вкладку "Прочее" и укажите параметр "URI пространство имен".

Реализация веб-сервиса в 1с


В документации об этом параметре написано чуть больше чем ничего, примерно то, что это поле служит для идентификации вашего веб-сервиса. Когда я делал свой первый веб-сервис, мне казалось что это ссылка на сайт, на котором я публикую свой веб-сервис и все наименования буду получаться через запрос к этому сайту. На самом деле "URI пространство имен" не что иное как строка определяющая название набора ваших имен (названий веб-сервиса, операций, параметров, типов данных и т.д.). То есть если вы объявите свой тип "integer" то xml-парсер не будет ругаться, так как этот тип принадлежит вашему пространству имен. Мало того если "URI пространство имен" будет содержать русские символы и не будет соответствовать стандарту как формат URI, платформа все равно опубликует такой веб-сервис, и он будет работать. Но по стандартам рекомендуется использовать URI ссылку. Я советую того же самого.
Простое и понятное объяснение пространства имен можно прочитать тут.

Поле "Пакеты XDTO" не обязательное. Оно определяет набор пакетов XDTO в которых вы можете оказать свои типы значений. Это не обязательное поле, по умолчанию вам всегда доступны типы пространства имен "http://www.w3.org/2001/XMLSchema". О пакетах XDTO я расскажу чуть позже.

"Имя файла публикации", это имя файла, в котором хранятся настройки веб-сервиса для Apache(путь к базе и другие) после публикации. Папка, в которой находится этот файл, определяется при публикации. О публикации на веб-сервере будет рассказано позже.

Веб-сервис создан, но еще нет ни одной функции которую он мог бы исполнить. Надо добавить операцию. Для этого добавьте в созданный веб-сервис операцию. Нажмите не веб-веб-сервис правой кнопкой и выберите "Добавить-Операция". Она будет к вашему операнду прибавлять 2 и возвращать значение. Давайте назовем ее "Plus2". Можно указать и русское название, многие клиенты его обработают, но все же могут возникнуть проблемы.

Реализация веб-сервиса в 1с

"Тип возвращаемого значения" это тип описанный в указанном вами пакете 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 и выберите "Добавить-Параметр".

Реализация веб-сервиса в 1с

Давайте назовем его "Param". Названия параметров тоже можно указывать русскими, мало того класс SoapClient языка PHP работает с ними корректно, ведь параметры передаются через массив. Желательно использовать кодировку UTF-8.

Укажем "Тип значения" int из пространства имен "http://www.w3.org/2001/XMLSchema".

В ответе:
err —
result —
Помогите разобраться.

500 ошибка говорит об исключении на стороне сервера 1с. Тут вам нужно получить текст этой ошибки, например развернув полностью result. Если ссылка с ?wsdl в браузере работает, то нужно смотреть в этот самый wsdl и имена/типы параметров, которые передаются в метод. Ну и "мой код" явно криво вырезан.

Veneomin

Veneomin

У меня Result приходит в кодировке Windows1251 (насколько я понял) и я пока не могу найти как его прочитать (примерно вот так приходит - title: '500 - ���������� ������ �������.', ) Как только смогу прочитать что там, сразу отпишусь

Данил, вангую, что это "Внутренняя ошибка сервера." ;) Ну а перекодировать умеет модуль iconv.

Veneomin

Оказалось, что я название параметра указывал рандомное и сервер сыпался от этого. Указал нужное название и все заработало. Спасибо за верное направление для поиска.

EreminD

Veneomin

Убрал, теперь при
soap.createClient(url, function(err, client)
Получаю:
Unexpected root element of WSDL or include

EreminD

Данил, ну ?wsdl - Это просто запрос описания сервиса
Очевидно, вы свои запросы не в описание шлете, а в сам сервис

Veneomin

Дмитрий Еремин, Не понял вас :( Что мне сделать чтобы слать в сам сервис?

Дмитрий Еремин, вы бы почитали описание пакета soap. Все там правильно. Клиент получает описание, которое содержит точку подключения, в которую и надо слать запрос. При этом (конечно, не в этом случае :) ) эта точка подключения может быть совсем не "url без wsdl"

Veneomin

LGsBmDx.jpg

Данил, ну, если это чисто академический интерес, то в 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 какие используются пространства имен.

Читайте также: