22.05.2012, 11:09 | #1 |
Участник
|
в WebService ошибка IncludeExceptionDetailInFaults
Всем привет!
На серваке где стоит CRM 2011 поднял простенький сервис Код: public class Account : System.Web.Services.WebService { public IOrganizationService GetOrganization() { Uri organizationUri = new Uri("http://server/test/xrmservices/2011/Organization.svc"); var cred = new ClientCredentials(); OrganizationServiceProxy _serviceproxy = new OrganizationServiceProxy(organizationUri, null, cred, null); IOrganizationService _service = (IOrganizationService)_serviceproxy; return _service; } [WebMethod(true)] [ScriptMethod] public string CountOfAccount(string name) { IOrganizationService service = GetOrganization(); var e = service.Retrieve("account", new Guid("117A260F-36A3-E111-9835-00155D016705"), new ColumnSet(true)); return e.Attributes.Count.ToString(); } } Код: System.ServiceModel.FaultException: Серверу не удалось обработать запрос из-за внутренней ошибки. Для получения дополнительной информации об ошибке включите IncludeExceptionDetailInFaults (или с помощью атрибута ServiceBehaviorAttribute, или из конфигурации поведения <serviceDebug>) на сервере с целью отправки информации об исключении клиенту, либо включите трассировку, согласно документации Microsoft .NET Framework 3.0 SDK, и изучите журналы трассировки сервера. Server stack trace: в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) в System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) в Microsoft.Xrm.Sdk.IOrganizationService.Retrieve(String entityName, Guid id, ColumnSet columnSet) в Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveCore(String entityName, Guid id, ColumnSet columnSet) в Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.Retrieve(String entityName, Guid id, ColumnSet columnSet) в ALV.WebServices.WebServices.Account.CountOfAccount(String name) в D:\Projects\ALV\ALV.WebServices\WebServices\Account.asmx.cs:строка 46 Мне кажется чтото с Credentials... у когонить была проблема? как мне настроить сервис, чтобы я его мог вызывать через javascript точнее мне надо первое) через js я его вызываю и он нормально вызывается, но выдает ошибку выше.... Последний раз редактировалось kh_heckfy; 22.05.2012 в 11:22. |
|
22.05.2012, 11:34 | #2 |
Участник
|
Мы делали так. Запускали пул сервиса от имени того пользователя, который есть в CRM.
Еще вариант. В конфиг файле сервиса прописать логин и парольпользователя, от которого неоодимо конектится к CRM. Использовали именно для вызова из JS все работает. |
|
|
За это сообщение автора поблагодарили: kh_heckfy (1). |
22.05.2012, 11:49 | #3 |
Чайный пьяница
|
По поводу инстанциирования сервиса советую посмотреть следующую ссылку - http://nishantrana.wordpress.com/201...e-in-crm-2011/
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: kh_heckfy (1). |
22.05.2012, 11:55 | #4 |
Участник
|
Цитата:
Сообщение от a33ik
По поводу инстанциирования сервиса советую посмотреть следующую ссылку - http://nishantrana.wordpress.com/201...e-in-crm-2011/
NetworkCredential)CredentialCache.DefaultCredentials берутся из пула приложения. Веб-сервис у нас не входит в CRM и является сторонним сайтом. Аутентификация моя в CRM для него не интересна. Значит мне либо при подключении к нему необходимо указать логин и пароль. Либо использовать анонимную авторизацию и аутентификацию пула. Где и будут DefaultCredentials того пользователя, от которого работает пул. Раньше можно было размещать веб-сервис в ISV и делать имперсонацию. Сейчас это вроде нехорошо. В ISV нельзя писать. |
|
22.05.2012, 11:55 | #5 |
Участник
|
А можно примерчик?
|
|
22.05.2012, 11:56 | #6 |
Участник
|
а не надо) вижу)) не обновил страницу
|
|
22.05.2012, 11:56 | #7 |
Участник
|
чего именно?
|
|
22.05.2012, 12:01 | #8 |
Участник
|
Все отлично! Заработало большое! Спасибо всем!
|
|
22.05.2012, 12:06 | #9 |
Чайный пьяница
|
Цитата:
Сообщение от g.Naukovych
Здесь ровно то же самое, что я предложил.
NetworkCredential)CredentialCache.DefaultCredentials берутся из пула приложения. Веб-сервис у нас не входит в CRM и является сторонним сайтом. Аутентификация моя в CRM для него не интересна. Значит мне либо при подключении к нему необходимо указать логин и пароль. Либо использовать анонимную авторизацию и аутентификацию пула. Где и будут DefaultCredentials того пользователя, от которого работает пул. Код топик стартера: Код: var cred = new ClientCredentials(); OrganizationServiceProxy(organizationUri, null, cred, null); Код: ClientCredentials credentials = new ClientCredentials(); // set default credentials for OrganizationService credentials.Windows.ClientCredential = (NetworkCredential)CredentialCache.DefaultCredentials; // or credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials; OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.05.2012, 12:18 | #10 |
Участник
|
Правильно. Но если ничего не задать пулу, то это (CredentialCache.DefaultCredentials) не поможет.
|
|
22.05.2012, 12:21 | #11 |
Чайный пьяница
|
Не спорю, это понятно. Просто мой ответ - дополнил ваш кодом.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.05.2012, 12:22 | #12 |
Участник
|
угу, верно говорите, я уже разобрался и вас поблагодарил)
|
|