AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2015, 11:26   #1  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
:( Проблема с сервисами (401)
Добрый день.
Необходимо было написать простенький http сервис. Всё сделал как написано тут: http://blogs.msdn.com/b/axsupport/ar...-services.aspx

Полученную во входящих портах ссылку открыл в экплорее. там 2 ссылки

http://xxx.xxxxx.ru/MicrosoftDynamic...rvice.svc?wsdl
и
http://xxx.xxxxx.ru/MicrosoftDynamic...svc?singleWsdl
Первая возвращает xml файл. Вторая возвратила следующую ошибку: "
The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs."
При попытке соединиться через написаный проект в VS выходит ошибка что то вроде "Запрос HTTP не разрешён для схемы аутентификации клиента "Basic". От сервера получен заголовок аутентификации "Basic realm = ""xxxx.xxx.ru"". ---> System.Net.WebExceptions: Удалённый сервер возвратил ошибку: (401) Несанкционированный. .... и дальше многА букав.
При попытке подключиться SoapUI долго просит вбить логин/пароль...когда нервы не выдерживаю и нажимаю отмена он долго думает и возвращает ошибку :"Source: null Error: type 'ArrayOfKeyValueOfstringstring@http://schemas.microsoft.com/2003/10/Serialization/Arrays' not found."
Логин и Пароль верные.
Все настройки я сделал как описано в статье.
Вопрос, где косяк? Сервис элементарный. По одному параметру нахожу значение и возвращаю 3 найденные переменные.
У кого какие мысли?
Старый 21.07.2015, 12:46   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
У SoapUI есть известные проблемы аутентификации при работе с сервисами AIF, см. также Web services и SOAP
Старый 21.07.2015, 13:38   #3  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Да. Я в курсе что там всё не просто. Нашёл ссылку на похожую тему [url=http://axforum.info/forums/showthread.php?t=48257[/URL] Попробовал подключиться через WCF Test Client]Web services и SOAP. Вышла вот такая ошибка:
"c:\Users\xxx\AppData\Local\Temp\Test Client Projects\12.0\74c20062-1c52-4454-983c-533474f2acc8\Client.cs(302,73) : error CS0234: Имя типа или пространства имен "Application" отсутствует в пространстве имен "Microsoft.Dynamics.Ax" (пропущена ссылка на сборку?)"
Что за пространство имён? Где что я забыл прописать?
Старый 22.07.2015, 10:33   #4  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Про Basic Authentication написано здесь

Про SOAP UI надо делать так:

Предположим мой логин Test и пароль 1234qwer, и ссылка на wsdl http://MyTestServer:8101/MicrosoftDy...xppservice.svc

В SoapUI указываем ссылку http://Test:1234qwer@MyTestServer:8101/MicrosoftDynamicsAXAif60/TestService/xppservice.svc?wsdl

Когда SoapUI сгенерит контракт, надо будет перед отправкой сервису контракта указать теже учетные данные мой логин Test и пароль на вкладке Authorization:
Название: Снимок.JPG
Просмотров: 3126

Размер: 23.9 Кб

Цитата:
отсутствует в пространстве имен "Microsoft.Dynamics.Ax" (пропущена ссылка на сборку?)"
Сейчас ковыряю такую же проблему
За это сообщение автора поблагодарили: raniel (1).
Старый 22.07.2015, 10:41   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
отсутствует в пространстве имен "Microsoft.Dynamics.Ax" (пропущена ссылка на сборку?)"
Кстати, попробуйте сделать полный CIL!
Старый 22.07.2015, 10:48   #6  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Angry
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Кстати, попробуйте сделать полный CIL!
Спасибо за активную помощь. CIL полный я делал уже ни раз... .
Есть Примеры как решить проблему с NameSpace, но это для C#... типа нужно указать, но у нас то всё автоматом берётся...все эти ссылки уже указаны в макросе Aif. И в этот процесс не можем/не должны вмешиваться.
Кстати вот ссылка на подобную проблему....но видимо я что-то не так делаю, либо незнаю уже...
Axilicious:AX2012 R2 Enterprise portal installation issues – Part 1
Старый 23.07.2015, 09:36   #7  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Кстати вот ссылка на подобную проблему....но видимо я что-то не так делаю, либо незнаю уже...
Это вам не надо.

Вы как сервис сделали? Через отдельный класс или используя Wizard?
Старый 23.07.2015, 13:46   #8  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Через отдельный класс. Простенький сервис. На входе один атрибут на выходе 3 параметра(типы простые).
Старый 23.07.2015, 13:52   #9  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
А вы сделали как написано тут:
Цитата:
The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs."
Т.е. Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 498
Размер:	52.1 Кб
ID:	9348
Старый 23.07.2015, 14:07   #10  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Да сделал. И получил подробности ошибки ... когда нажимаю вторую ссылку http://xxx.xxxxx.ru/MicrosoftDynamic...svc?singleWsdl получаю вот такой ответ
Цитата:
The service encountered an error.
An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:System.NotSupportedException: A single WSDL document could not be generated for this service. Multiple service contract namespaces were found (http://schemas.microsoft.com/netfx/2009/05/routing, http://tempuri.org). Ensure that all your service contracts have the same namespace. at System.ServiceModel.Description.WsdlHelper.VerifyContractNamespace(List`1 wsdls) at System.ServiceModel.Description.WsdlHelper.GetSingleWsdl(MetadataSet metadataSet) at System.ServiceModel.Description.ServiceMetadataExtension.EnsureSingleWsdlInitialized() at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.TryHandleMetadataRequest(Message httpGetRequest, String[] queries, Message& replyMessage) at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.ProcessHttpRequest(Message httpGetRequest) at SyncInvokeGet(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
Старый 23.07.2015, 14:11   #11  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Вот метод из моего сервиса:
X++:
[SysEntryPointAttribute(true),
AifCollectionTypeAttribute('_salesAgreementId', Types::String, extendedtypestr(SalesAgreementId))]
public ConsumerContract PR_LS_INFO_DATA(SalesAgreementId _salesAgreementId)
{
    ConsumerContract contract;
    SalesAgreementHeaderAddInform salesAgreementHeaderAddInform;
    salesAgreementHeaderAddInform =  SalesAgreementHeaderAddInform::findSalesNumberSequence(_salesAgreementId);
    contract = new ConsumerContract();
    if(!energSalesAgreementHeaderAddInform)
        throw error (strFmt("@XXX4415",_salesAgreementId));
    else
    {
        contract.parmSalesAgreementId(salesAgreementHeaderAddInform.SalesNumberSequence);
        contract.parmName(salesAgreementHeaderAddInform.name());
        contract.parmAddress(salesAgreementHeaderAddInform.addresOtherFormatted());
    }
 
    return contract;
}

Последний раз редактировалось raniel; 23.07.2015 в 14:13.
Старый 23.07.2015, 14:15   #12  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
А так?
X++:
[SysEntryPointAttribute(false),
AifCollectionTypeAttribute('_salesAgreementId', Types::String, extendedtypestr(SalesAgreementId)),
AifCollectionTypeAttribute('return', Types::Class, classStr(ConsumerContract))]
Старый 23.07.2015, 14:22   #13  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
А так?
X++:
[SysEntryPointAttribute(false),
AifCollectionTypeAttribute('_salesAgreementId', Types::String, extendedtypestr(SalesAgreementId)),
AifCollectionTypeAttribute('return', Types::Class, classStr(ConsumerContract))]
Вообще ничего не поменялось...Всё отцилил, заново развернул.... Без изменений.
Старый 23.07.2015, 14:29   #14  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
У меня была такая ошибка, но сервис работал.
А в группу сервисов вы добавили один сервис или несколько? Судя по ошибке у вас используются разные контракты.
Старый 23.07.2015, 14:32   #15  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Это тестовый пример. В классе один метод. Я его один и добавляю в сервис. Есть одноимённый метод в другом совсем классе. и он нигде не используется. Не думаю что они конфликтуют.
ЗЫ На всякий случай в другом классе этот метод переименовал, а связанный сервис выключил...Результата ноль

Последний раз редактировалось raniel; 23.07.2015 в 14:44.
Старый 04.12.2015, 10:58   #16  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Multiple service contract namespaces were found (http://schemas.microsoft.com/netfx/2009/05/routing, http://tempuri.org).
Опытным путем выяснили, что эту ошибку можно победить если убрать отсюда (см. рис) свое пространство имен, или вписать сюда http://schemas.microsoft.com/netfx/2009/05/routing вместо http://tempuri.org:
Название: 1.png
Просмотров: 3238

Размер: 11.6 Кб
В моем случае название service contract namespaces было другим.
За это сообщение автора поблагодарили: Logger (3), gl00mie (5), SOVA (1), -DocSerzh- (1), Maximin (5).
Теги
401, service, soap, сервис

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема балансировки в кластере AOS Ivanhoe DAX: Администрирование 26 29.07.2015 16:19
workflowax: The Request Failed with HTTP status 401: Unauthorized Blog bot DAX Blogs 0 20.09.2011 23:12
emeadaxsupport: HTTP 401 Error when trying to deploy/create an Enterprise Portal site on a load balanced farm using a hardware load balancer Blog bot DAX Blogs 0 06.05.2010 03:16
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:00.