09.12.2012, 21:37 | #1 |
Участник
|
XRM Organizationdata.svc Сбой выполнения Execute URL
Вот столкнулся с проблемой
стучимся на https://crm.*******.com/XRMServices/...ganization.svc получаем ответ Код: OrganizationService Служба Служба создана. итд стучимся на https://crm.*******.com/XRMServices/...ationData.svc/ получаем ответ Код: Error Description: Сбой выполнения Execute URL. Error Details: Сбой выполнения Execute URL. Full Stack: [HttpException: Сбой выполнения Execute URL.] в System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(String url, String method, String childHeaders, Boolean sendHeaders, Boolean addUserIndo, IntPtr token, String name, String authType, Byte[] entity, AsyncCallback cb, Object state) в System.Web.HttpResponse.BeginExecuteUrlForEntireResponse(String pathOverride, NameValueCollection requestHeaders, AsyncCallback cb, Object state) в System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) |
|
11.12.2012, 02:27 | #2 |
Участник
|
Что у всех endpoint работает?
Поставил с SDK “soapforjscript” тоже не работает, так что проблемы с код отпадают, что-то в самом crm. |
|
11.12.2012, 10:23 | #3 |
Чайный пьяница
|
Думаю, что 'чтото' не с эндпоинтами, а с тем, как CRM опубликовали наружу (полную урлу вы не показали, но безопасный протокол и завершение имени сервера на com говорят за себя - поправьте, если неправ). Итак вопрос - каким образом вы публиковали CRM в интернет?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
11.12.2012, 11:04 | #4 |
Участник
|
это проклятие с названием ADFS
|
|
11.12.2012, 11:12 | #5 |
Чайный пьяница
|
Покажите код, которым пытаетесь стучаться.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
11.12.2012, 11:27 | #6 |
Участник
|
1)Открываю браузер
2) вписываю url 3) получаю редирект на форму авторизации ADFS 3) логинюсь (администратор домена) 4) получаю редирект в обратную сторону и попадаю в crm 5) открываю новую вкладку вписываю url (*****XRMServices/2011/Organization.svc) 6) получаю верный ответ, то есть с авторизацией все норм 7) вписываю в этой же вкладке url (****XRMServices/2011/OrganizationData.svc/) – ошибка PS: если закрыть браузер и сразу постучаться на 5 потребует авторизицию, то есть, все верно Ну код так код X++: function Form_onload() { var contact_lookup = Xrm.Page.getAttribute("bla-bla_contactid"); if(contact_lookup == null || contact_lookup.getValue() == null) { return; } var contact_id = contact_lookup.getValue()[0].id; var server_url = Xrm.Page.context.getServerUrl(); if (server_url.match(/\/$/)) { server_url = server_url.substring(0, server_url.length - 1); } server_url += "/CRM/XRMServices/2011/OrganizationData.svc/contactSet(guid'" + contact_id.toString() + "')?$select=mobilephone,birthdate"; alert(server_url); var post_request = new XMLHttpRequest(); post_request.open("POST", server_url, true); //пробовал и постом и гетом post_request.setRequestHeader("Accept", "application/json"); post_request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); post_request.onreadystatechange = function () { oDataCallBack(this); }; post_request.send(null); } function oDataCallBack(retrievedData) { if (retrievedData.readyState == 4) { if (retrievedData.status == 200) { alert(retrievedData.responseText); /* Data = JSON.parse(retrievedData.responseText).d; for (i = 0; i < fields.length; i++) values[i] = eval("Data." + fields[i]); */ } else { alert("хрень"); } } } |
|
11.12.2012, 11:33 | #7 |
Чайный пьяница
|
Как по мне ошибка в следующей строке, а именно в выделенным жирным:
Код: server_url += "/CRM/XRMServices/2011/OrganizationData.svc/contactSet(guid'" + contact_id.toString() + "')?$select=mobilephone,birthdate";
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
11.12.2012, 11:36 | #8 |
Участник
|
ну в мануале от MS сказано что там должно быть название организации, ну вот она у меня так называется, но проблема не там, пробовал и с ней, и без, и с большой, и с маленькой, и жирным, и курсивом
upd: хочу получить вот что http://mmcrm.ru/wp-content/uploads/crm2011r2/Wod1.png Последний раз редактировалось user20369502; 11.12.2012 в 11:38. |
|
11.12.2012, 11:48 | #9 |
Участник
|
Цитата:
Сообщение от user20369502
1)Открываю браузер
2) вписываю url 3) получаю редирект на форму авторизации ADFS 3) логинюсь (администратор домена) 4) получаю редирект в обратную сторону и попадаю в crm 5) открываю новую вкладку вписываю url (*****XRMServices/2011/Organization.svc) 6) получаю верный ответ, то есть с авторизацией все норм 7) вписываю в этой же вкладке url (****XRMServices/2011/OrganizationData.svc/) – ошибка PS: если закрыть браузер и сразу постучаться на 5 потребует авторизицию, то есть, все верно Ну код так код X++: function Form_onload() { var contact_lookup = Xrm.Page.getAttribute("bla-bla_contactid"); if(contact_lookup == null || contact_lookup.getValue() == null) { return; } var contact_id = contact_lookup.getValue()[0].id; var server_url = Xrm.Page.context.getServerUrl(); if (server_url.match(/\/$/)) { server_url = server_url.substring(0, server_url.length - 1); } server_url += "/CRM/XRMServices/2011/OrganizationData.svc/contactSet(guid'" + contact_id.toString() + "')?$select=mobilephone,birthdate"; alert(server_url); var post_request = new XMLHttpRequest(); post_request.open("POST", server_url, true); //пробовал и постом и гетом post_request.setRequestHeader("Accept", "application/json"); post_request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); post_request.onreadystatechange = function () { oDataCallBack(this); }; post_request.send(null); } function oDataCallBack(retrievedData) { if (retrievedData.readyState == 4) { if (retrievedData.status == 200) { alert(retrievedData.responseText); /* Data = JSON.parse(retrievedData.responseText).d; for (i = 0; i < fields.length; i++) values[i] = eval("Data." + fields[i]); */ } else { alert("хрень"); } } } Попробуй вот так Код: server_url += "/CRM/XRMServices/2011/OrganizationData.svc/СontactSet(guid'" + contact_id.toString() + "')?$select=mobilephone,birthdate";
__________________
Читайте SDK!!! |
|
11.12.2012, 11:54 | #10 |
Участник
|
до туда вообще не доходит, мне сама служба должна ответить, а вылетает ошибка crm
|
|
11.12.2012, 12:06 | #11 |
Участник
|
Цитата:
либо откройте его в браузере. Что там написано?
__________________
Читайте SDK!!! |
|
11.12.2012, 12:09 | #12 |
Участник
|
Проверьте что вам возвращает
Код: var server_url = Xrm.Page.context.getServerUrl(); p.s. это так один из вариантов что может еще быть |
|
11.12.2012, 12:11 | #13 |
Участник
|
что я туда только не ставил, везде появляется то что описано в 1-м посте, оно вообще без параметров должно вернуть http://mmcrm.ru/wp-content/uploads/crm2011r2/Wod1.png
PS: сейчас за скрипт никто не говорит, оно в браузере(через адресную строку) не работает |
|
11.12.2012, 12:13 | #14 |
Участник
|
Цитата:
Сообщение от spectr
Проверьте что вам возвращает
Код: var server_url = Xrm.Page.context.getServerUrl(); p.s. это так один из вариантов что может еще быть посмотрите первый пост, там описана ситуация |
|
11.12.2012, 12:33 | #15 |
Участник
|
Цитата:
Сообщение от user20369502
что я туда только не ставил, везде появляется то что описано в 1-м посте, оно вообще без параметров должно вернуть http://mmcrm.ru/wp-content/uploads/crm2011r2/Wod1.png
PS: сейчас за скрипт никто не говорит, оно в браузере(через адресную строку) не работает https://www.google.com/search?q=Syst...w=1920&bih=955
__________________
Читайте SDK!!! |
|
|
За это сообщение автора поблагодарили: user20369502 (1). |
|
|