|
![]() |
#1 |
Участник
|
Добавление конструкции для 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, ООО "Программные технологии", Самара |
|
![]() |
#2 |
Участник
|
Сделал по примеру как в ссылке для 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, ООО "Программные технологии", Самара |
|
![]() |
#3 |
Участник
|
В web.config'е Вашего приложения должно быть:
<identity impersonate="true"/> Есть? |
|
![]() |
#4 |
Участник
|
Добавление этого кода:
[quote=sergeyjb;180050]Добавление конструкции для activityid проблему не решило, но на будущее лишним явно не будет. Key t_key = new Key(); t_key.Value = new Guid(); my_task.activityid = t_key;] даст вам гуид null, что само по себе является ошибкой. Если сама сущность создается через создание ее гуида, как компонент вебсервиса - значит или не все условия генерации выполняются, или генератор (сервис) используется не верно... Я сам ломаю голову над своим generic sql erorr... если добьешь - черкни, в чем там дело было ![]() |
|
![]() |
#5 |
Участник
|
Так надо (проверить пока не могу)?:
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, ООО "Программные технологии", Самара |
|
![]() |
#6 |
Участник
|
А какие возможны варианты запрограммировать поведение ISV кнопки на форме? Кроме как через ASP страницу? Или это единственный метод?
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
![]() |
#7 |
Чайный пьяница
|
Цитата:
А какой именно функционал от этой кнопки требуется? |
|
![]() |
#8 |
Участник
|
Вопрос в общем - о возможностях.
А от данной кнопки в частности требуется только смена статуса активности через срм-сервис чтобы воркфлоу видела эти изменения.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
|
![]() |
||||
Тема | Ответов | |||
Быстродействие CrmService | 16 | |||
Обращение к полю сущности | 28 | |||
аутентификация crmService | 2 | |||
Обращение! - Ответственный контакт? | 1 | |||
Обращение: невозможно добавить Контракт | 2 |
|