AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.10.2008, 16:46   #1  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Вообще-то, поскольку у Вас aspx-страничка, то я бы для начала вот это прочитал:
http://msdn.microsoft.com/en-us/library/cc151050.aspx
За это сообщение автора поблагодарили: sergeyjb (1).
Старый 19.10.2008, 12:16   #2  
maclai is offline
maclai
Участник
 
14 / 11 (1) +
Регистрация: 09.10.2008
Сергеи, посмотрите http://localhost:<порт>/sdk/list.aspx. Похоже,
при создании task activityid является обязателним атрибутом.
За это сообщение автора поблагодарили: sergeyjb (1).
Старый 20.10.2008, 08:14   #3  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
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, ООО "Программные технологии", Самара
Старый 20.10.2008, 08:32   #4  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
Добавление конструкции для 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, ООО "Программные технологии", Самара
Старый 20.10.2008, 14:09   #5  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
Сделал по примеру как в ссылке для 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");
    }
}
Код new CrmImpersonator() вызывает ошибку обращения к несуществующему токену...

Код:
 
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, ООО "Программные технологии", Самара
Старый 20.10.2008, 17:07   #6  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
В web.config'е Вашего приложения должно быть:
<identity impersonate="true"/>
Есть?
Старый 22.10.2008, 12:11   #7  
maclai is offline
maclai
Участник
 
14 / 11 (1) +
Регистрация: 09.10.2008
Добавление этого кода:

[quote=sergeyjb;180050]Добавление конструкции для activityid проблему не решило, но на будущее лишним явно не будет.
Key t_key = new Key();
t_key.Value = new Guid();
my_task.activityid = t_key;]

даст вам гуид null, что само по себе является ошибкой.
Если сама сущность создается через создание ее гуида, как компонент вебсервиса - значит или не все условия генерации выполняются, или генератор (сервис) используется не верно...
Я сам ломаю голову над своим generic sql erorr... если добьешь - черкни, в чем там дело было
Старый 22.10.2008, 13:44   #8  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
Так надо (проверить пока не могу)?:
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, ООО "Программные технологии", Самара
Старый 23.10.2008, 14:55   #9  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
А какие возможны варианты запрограммировать поведение ISV кнопки на форме? Кроме как через ASP страницу? Или это единственный метод?
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Быстродействие CrmService Bakai Madybaev Dynamics CRM: Разработка 16 21.03.2009 22:57
Обращение к полю сущности MFCшный Wizard Dynamics CRM: Разработка 28 12.02.2009 14:35
аутентификация crmService if_maks Dynamics CRM: Разработка 2 25.12.2008 11:52
Обращение! - Ответственный контакт? AlekseyS Dynamics CRM: Разработка 1 09.09.2008 13:04
Обращение: невозможно добавить Контракт Lazarus Dynamics CRM: Функционал 2 01.07.2008 13:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:37.