27.01.2016, 19:14 | #1 |
Участник
|
Expected non-empty string. Parameter name: authenticationInfo
Всем привет.
Работаю с CRM 2016 on Premises Есть кастомный веб сервис, написанный на C# который обращается к OrganizationService.Create. Если вызывать его из дебага VisualStudio - то все отрабатывает хорошо, запись создается и возвращается её Guid. Если вызывать тот же самый сервис с сервера IIS - то при обращении к OrganizationService.Create - возвращается следующее исключение: Expected non-empty string. Parameter name: authenticationInfo в вызываемый объект OrganizationServiceProxy передаются корректный логин и пароль. Код один и тот же. В чем может быть дело? Кто-нибудь с таким сталкивался? Спасибо. С уважением, Юрий. |
|
27.01.2016, 21:31 | #2 |
Чайный пьяница
|
Код покажите, пожалуйста.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
28.01.2016, 11:08 | #3 |
Участник
|
Инициализация и вызов сервиса. Логин и пароль для авторизации CRM передаются извне. На момент ошибки, они корректные, проверял в дебаге.
Или нужен весь код? private OrganizationServiceProxy serviceProxy; private Uri osUri = new Uri("http://dyncrm2012/DYNCRM/XRMServices/2011/Organization.svc"); private ClientCredentials cc = new ClientCredentials(); cc.UserName.UserName = contact.Login; cc.UserName.Password = contact.Password; serviceProxy = new OrganizationServiceProxy(osUri, null, cc, null); ... sResponse.Id = serviceProxy.Create(NewContact); |
|
28.01.2016, 11:21 | #4 |
Участник
|
Создал новый App Pool в IIS с доменным аккаунтом в качестве Application Pool Identity.
В этом пуле сервис работает. Но мне все ещё не ясно, что не так с аккаунтом NetworkService. По идее там в CRMAppPool все по умолчанию работать должно. Или я не прав? |
|
28.01.2016, 11:32 | #5 |
Чайный пьяница
|
Судя по всему у вас доменная аутентификация и если это так, то вы направильно передаёте логин пароль. Вместо
Код: private ClientCredentials cc = new ClientCredentials(); cc.UserName.UserName = contact.Login; cc.UserName.Password = contact.Password; Код: private ClientCredentials cc = new ClientCredentials(); credentials.Windows.ClientCredential = new NetworkCredential(contact.Login, contact.Password, "<Put domain here>");
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Chapelain (1). |
28.01.2016, 12:04 | #6 |
Участник
|
Большое спасибо. Теперь работает даже из CRMAppPool
|
|
Теги |
crm2016, error, web сервис |
|
|