У нас есть общедоступный веб-интерфейс ASP.NET, который используется в качестве ограниченного внешнего интерфейса для базового экземпляра CRM4.Связь достигается с помощью веб-службы CRM4 SDK:
var service = new Microsoft.Crm.SdkTypeProxy.CrmService();
service.Credentials = new System.Net.NetworkCredential("user", "pass", "domain");
service.Url = server + "/MSCRMServices/2007/CrmService.asmx";
var token = new CrmAuthenticationToken();
token.OrganizationName = organizationName;
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
Вызов выборки с запросом xml всегда завершается успешно, но иногда происходит сбой при создании сущности:
var entity = new DynamicEntity("some_entity");
var resultGuid = service.Create(entity);
После создания iisreset всегда происходит сбой.Журнал IIS сообщает два запроса POST к CRMservice:
- нет пользователя, HTTP 401,5
- домен / пользователь, HTTP 500.0
Возврат:
[SoapException: Server was unable to process request.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1769861
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +345
Microsoft.Crm.SdkTypeProxy.CrmService.Create(BusinessEntity entity) +79
Подробности исключений:
<detail><error>
<code>0x80048405</code>
<description>Access is denied.</description>
<type>Platform</type>
</error></detail>
Все становится странным, когда кто-то создает some_entity вручную, используя собственный пользовательский интерфейс CRM.После этого доступ к веб-сервису работает без проблем.
Дополнительные примечания:
- удаление или обновление в собственном интерфейсе CRM НЕ исправляет доступ к веб-сервису
- Приложение CRM использует максимум1 рабочий процесс.
- Через некоторое время веб-служба снова выходит из строя с "доступом запрещен" (вероятно, перезапись wp)
- Ошибки НЕ зависят от данных.
- удаление PreAuthenticate didnничего не изменить.
- Ничего полезного в журнале событий.
Может ли кто-нибудь помочь мне избавиться от этой странной ошибки, связанной с отказом в доступе?Почему трогательный пользовательский интерфейс CRM меняет поведение веб-службы?
РЕДАКТИРОВАТЬ: Несмотря на то, что Майкл М предоставил обходной путь для ошибки, я все еще не понимаю, почему / как пользовательский интерфейс CRM влияет на аутентификацию CrmService.