|
![]() |
#1 |
Участник
|
Вообще-то, поскольку у Вас aspx-страничка, то я бы для начала вот это прочитал:
http://msdn.microsoft.com/en-us/library/cc151050.aspx |
|
|
За это сообщение автора поблагодарили: sergeyjb (1). |
![]() |
#2 |
Участник
|
Сергеи, посмотрите http://localhost:<порт>/sdk/list.aspx. Похоже,
при создании task activityid является обязателним атрибутом. |
|
|
За это сообщение автора поблагодарили: sergeyjb (1). |
![]() |
#3 |
Участник
|
maclai:
Интересная страница, не знал о ее существовании. Действительно поле activityid отмечено как Required For Grid. Удивило то, что ownerid не помечено как обязательное, хотя на форме поле "ответственный" стоит с красной звездочкой. Гуревич Денис: Спасибо за ссылку, сейчас попробую как там пишут. Есть подозрение судя по ошибкам что с самим сервисом не порядок а не с набором отправляемых полей. Я ожидал бы другой ошибки если обязательное поле отсутствовало. Хотя попробую все варианты. Артем, это часть целого сообщения в системном журнале: "Журналы Windows - Приложение". Если есть отдельный журнал ошибок CRM сервера то подскажите где его посмотреть. А из системного полный текст ошибки (точнее предупреждения): Код: Event code: 3005 Event message: Возникло необработанное исключение. Event time: 20.10.2008 8:47:52 Event time (UTC): 20.10.2008 3:47:52 Event ID: 907e722b17074104b8b6d5540dbae94c Event sequence: 6 Event occurrence: 1 Event detail code: 0 Application information: Application domain: /LM/W3SVC/3/ROOT-1-128689480638620121 Trust level: Full Application Virtual Path: / Application Path: C:\inetpub\Infrastructure\ Machine name: SRV-CRM-01 Process information: Process ID: 1828 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception information: Exception type: SoapException Exception message: System.Web.Services.Protocols.SoapException: Сервер не распознал значение заголовка HTTP SOAPAction: http://schemas.microsoft.com/crm/200...ervices/Create. в System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() в System.Web.Services.Protocols.SoapServerProtocol.Initialize() в System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) в System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing) Request information: Request URL: http://crm:1001/UpdateActivity.aspx?...Mode=Completed Request path: /UpdateActivity.aspx User host address: 192.168.100.62 User: Is authenticated: False Authentication Type: Thread account name: NT AUTHORITY\NETWORK SERVICE Thread information: Thread ID: 5 Thread account name: NT AUTHORITY\NETWORK SERVICE Is impersonating: False Stack trace: в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) в CrmSdk.CrmService.Create(BusinessEntity entity) в c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\5c7d8db1\29570109\App_WebReferences.wh6ss6eb.0.cs:строка 204 в UpdateActivity.Page_Load(Object sender, EventArgs e) в c:\inetpub\Infrastructure\UpdateActivity.aspx.cs:строка 64 в System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) в System.Web.UI.Control.OnLoad(EventArgs e) в System.Web.UI.Control.LoadRecursive() в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) Custom event details:
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
![]() |
#4 |
Участник
|
Добавление конструкции для activityid проблему не решило, но на будущее лишним явно не будет.
Key t_key = new Key(); t_key.Value = new Guid(); my_task.activityid = t_key; Сейчас буду с Impersonate разбираться. Не зря в логе: .............. Is authenticated: False .............. Is impersonating: False .............. Не думал сначала что обращение к сервису с ASPX страницы отличается от стандартного примера в SDK. Предполагал что они в расчете на WEB доступ пример писали.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
![]() |
#5 |
Участник
|
Сделал по примеру как в ссылке для ASP:
Код: using System; ................................. using Microsoft.Win32; using Microsoft.Crm.Sdk; using Microsoft.Crm.SdkTypeProxy; public partial class UpdateActivity : System.Web.UI.Page { public string orgname; public string crmurl; public string metaurl; protected void Page_Load(object sender, EventArgs e) { RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM"); string ServerUrl = regkey.GetValue("ServerUrl").ToString(); crmurl = ServerUrl + "/2007/crmservice.asmx"; metaurl = ServerUrl + "/2007/metadataservice.asmx"; orgname = "Samarasoft"; using (new CrmImpersonator()) { CrmAuthenticationToken token; token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, orgname); token.OrganizationName = orgname; token.AuthenticationType = 0; CrmService service = new CrmService(); service.Credentials = System.Net.CredentialCache.DefaultCredentials; service.CrmAuthenticationTokenValue = token; service.Url = crmurl; } Response.Write("Done"); } } Код: Event code: 3005 Event message: Возникло необработанное исключение. Event time: 20.10.2008 14:50:28 Event time (UTC): 20.10.2008 9:50:28 Event ID: a22bbfc8755f4f539d4a8ad4786cebed Event sequence: 47 Event occurrence: 3 Event detail code: 0 Application information: Application domain: /LM/W3SVC/4/ROOT-8-128689694218393361 Trust level: Full Application Virtual Path: / Application Path: C:\inetpub\asp_automate\ Machine name: SRV-CRM-01 Process information: Process ID: 5768 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception information: Exception type: InvalidOperationException Exception message: OpenThreadToken failed with hr = 1008 Request information: Request URL: http://crm:1003/UpdateActivity.aspx?sState=Update Request path: /UpdateActivity.aspx User host address: 192.168.100.62 User: Is authenticated: False Authentication Type: Thread account name: NT AUTHORITY\NETWORK SERVICE Thread information: Thread ID: 7 Thread account name: NT AUTHORITY\NETWORK SERVICE Is impersonating: False Stack trace: в Microsoft.Crm.Sdk.CrmImpersonator.Impersonate() в UpdateActivity.Page_Load(Object sender, EventArgs e) в c:\inetpub\Asp_automate\UpdateActivity.aspx.cs:строка 33 в System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) в System.Web.UI.Control.OnLoad(EventArgs e) в System.Web.UI.Control.LoadRecursive() в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) Custom event details:
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
![]() |
#6 |
Участник
|
В web.config'е Вашего приложения должно быть:
<identity impersonate="true"/> Есть? |
|
![]() |
#7 |
Участник
|
Добавление этого кода:
[quote=sergeyjb;180050]Добавление конструкции для activityid проблему не решило, но на будущее лишним явно не будет. Key t_key = new Key(); t_key.Value = new Guid(); my_task.activityid = t_key;] даст вам гуид null, что само по себе является ошибкой. Если сама сущность создается через создание ее гуида, как компонент вебсервиса - значит или не все условия генерации выполняются, или генератор (сервис) используется не верно... Я сам ломаю голову над своим generic sql erorr... если добьешь - черкни, в чем там дело было ![]() |
|
![]() |
#8 |
Участник
|
Так надо (проверить пока не могу)?:
Key t_key = new Key(); t_key.Value = NewGuid(); my_task.activityid = t_key; Судя по описанию должен дать новый Гуид Guid.NewGuid Method - This is a convenient static method that you can call to get a new Guid У меня проблема ни с generic sql erorr (до этого не доходит пока даже), а с авторизацией... Не было <identity impersonate="true"/> - поставил... Теперь надо с настройками IIS7 на стороне сервера разобраться: с пулами приложений (мое связано с DefaultAppPool сейчас) и "проверка подлинности" (у меня включены на этом узле "Олицетворение ASP.NET" и "Проверка подлинности Windows"). Сейчас браузер выдает ошибку "Ошибка HTTP 500.24 - Internal Server Error Обнаружены значения параметров ASP.NET, которые неприменимы в интегрированном режиме управляемого конвейера." Так что до проблем с пустым Гуидом еще как до луны ![]()
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
![]() |
#9 |
Участник
|
А какие возможны варианты запрограммировать поведение ISV кнопки на форме? Кроме как через ASP страницу? Или это единственный метод?
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
|
![]() |
||||
Тема | Ответов | |||
Быстродействие CrmService | 16 | |||
Обращение к полю сущности | 28 | |||
аутентификация crmService | 2 | |||
Обращение! - Ответственный контакт? | 1 | |||
Обращение: невозможно добавить Контракт | 2 |
|