|
Не создает SOAP клиент | ☑ | ||
---|---|---|---|---|
0
790th
22.08.13
✎
10:36
|
Из платформы 8.3.2.163 опубликовал веб-сервис на IIS 5.1.
Установил PHP 5.3.271 Сделал файл index.php: ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient("http://localhost/InfoBase4/ws/wsnomen.1cws?wsdl"); При открытии http://localhost/index.php получаю ошибку: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/InfoBase4/ws/wsnomen.1cws?wsdl' : failed to load external entity "http://localhost/InfoBase4/ws/wsnomen.1cws?wsdl" in C:\Inetpub\wwwroot\index.php:5 Stack trace: #0 C:\Inetpub\wwwroot\index.php(5): SoapClient->SoapClient('http://localhos...') #1 {main} thrown in C:\Inetpub\wwwroot\index.php on line 5 При этом если открыть http://localhost/InfoBase4/ws/wsnomen.1cws?wsdl то нормально открывается описание веб сервиса: This XML file does not appear to have any style information associated with it. The document tree is shown below. <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://sch ... и т.д. В чем может быть ошибка ? |
|||
1
790th
22.08.13
✎
10:38
|
Пардон, код PHP Таков:
ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient("http://localhost/InfoBase4/ws/wsnomen.1cws?wsdl"); |
|||
2
790th
22.08.13
✎
10:39
|
т.е. там нет точки-запятой перед скобкой, подставляется почему то автоматически при публикации в форуме
|
|||
3
sda553
22.08.13
✎
10:47
|
Раздел [soap] из php.ini дай
|
|||
4
sda553
22.08.13
✎
10:51
|
И попробуй туда же раскомментировать
extension=php_openssl.dll там где экстеншены |
|||
5
790th
22.08.13
✎
10:58
|
в разделе пхп все норм
[PHP_OPENSSL] extension=php_openssl.dll |
|||
6
790th
22.08.13
✎
10:59
|
сори опять тороплюсь вот:
[PHP_SOAP] extension=php_soap.dll |
|||
7
790th
22.08.13
✎
11:26
|
Обнаружил, что если в пхп написать
$client = new SoapClient("bugaga"); то ошибку выдает точно такую же. А если например: $client = new SoapClient_("bugaga"); то ошибка меняется Fatal error: Class 'SoapClient_' not found in C:\Inetpub\wwwroot\index.php on line 5 |
|||
8
Asmody
22.08.13
✎
11:40
|
||||
9
790th
22.08.13
✎
15:39
|
(8) интересно. Установил, запустил ПХП. Просит пароль. Переустановил IIS, настроил у него ПХП, раздал права на папки. Пароль требовать перестал, но и ссылку
http://127.0.0.1/otladka/ws/lyay.1cws?wsdl теперь не видит. Разбираюсь. |
|||
10
790th
22.08.13
✎
15:59
|
Заработало.
Подставил прилагаемый к примеру default.vrd и возможно (точно не помню)затронул настройки безопасности IIS/Свойства: otladka/Безопасность каталога/Анонимный доступ и проверка подл./Изменить. Установлены флаги: Анонимный доступ Разрешить управление паролем из ИИС +Указано имя пользователя На вкладке "Виртуальный каталог" кроме прочих доступны поля: Локальный путь Имя приложения +кнопка Настройка Еще вероятнее всего повлияло: В конфигураторе при публикации Имя: otladka где то на мисте читал что оно должно соответствовать названию своего каталога (C:\Inetpub\wwwroot\otladka\) |
|||
11
790th
22.08.13
✎
16:01
|
а у меня по-умолчанию имя стояло: db
(8) хороший пример, спасибо ! |
|||
12
790th
23.08.13
✎
10:15
|
И еще одна любопытная деталь:
Если сейчас обращусь по адресу http://127.0.0.1/index.php без вопросов откроется пример А если ввести адрес http://127.0.0.1/otladka/ws/lyay.1cws?wsdl То спросит логин и пароль. В этом примере, в PHP файле указаны логин и пароль: 'site' Так вот они подходят, что странно, учитывая что я их нигде не вводил ранее. |
|||
13
790th
23.08.13
✎
10:21
|
(0) кстати объявление "new SoapClient" , в соответствии с примером у меня теперь выглядит немного сложнее:
function ПодключитьсяК1С(){ if (!function_exists('is_soap_fault')){ print 'Не настроен web сервер. Не найден модуль php-soap.'; return false; } try { $Клиент1С = new SoapClient('http://127.0.0.1/otladka/ws/lyay.1cws?wsdl', array('login' => 'site', 'password' => 'site', 'soap_version' => SOAP_1_2, 'cache_wsdl' => WSDL_CACHE_NONE, //WSDL_CACHE_MEMORY, //, WSDL_CACHE_NONE, WSDL_CACHE_DISK or WSDL_CACHE_BOTH 'exceptions' => true, 'trace' => 1)); }catch(SoapFault $e) { trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR); var_dump($e); } //echo 'Раз<br>'; if (is_soap_fault(Клиент1С)){ trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR); return false; } return $Клиент1С; } |
|||
14
790th
23.08.13
✎
10:48
|
(12) это всего лишь пользователь бд
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |