11.07.2006, 19:44 | #1 |
Гость
|
Callout
В чем проблема не пойму, наверняка какую-нибуть мелочь забыл, помогите пожалуйста разобраться.
Пытаюсь создать простое, тестовое callout, чтобы понять как оно работает. Мои действия: 1) В студии создаю .dll вот код(соответственно сделав все ссылки): using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Xml; using System.IO; using System.Security.Principal; using Microsoft.Win32; using Microsoft.Crm.Callout; using work.CrmSdk; namespace work { classCalloutComponent : CrmCalloutBase { publicoverridevoid PostCreate(CalloutUserContext userContext, CalloutEntityContext entityContext, string postImageEntityXml) { TextWriter log = TextWriter.Synchronized( File.AppendText(@"C:\CRM_SDK_Drop\Create.txt")); log.WriteLine("PostCreate"); log.WriteLine("ObjectType: " + entityContext.EntityTypeCode.ToString()); log.WriteLine("ObjectId: " + entityContext.InstanceId.ToString()); log.WriteLine("CreatorId: " + userContext.UserId.ToString()); log.WriteLine(); log.Close(); } } } Компилится отлично. 2) Беру dll и забрасываю её в <installdir>\Program Files\Microsoft CRM\server\bin\assembly\ 3) Подправляю callout.config.xml : <callout.config version="1.0" xmlns=" http://schemas.microsoft.com/crm/2006/callout/"> <callout entity="account" event="PostCreate"> <subscription assembly="work.dll" class="work.CalloutComponent" onerror="abort"> <postvalue>@all</postvalue> </subscription> </callout> </callout.config> 4) Перезагружаю IIS с помощью команды iisreset 5) Захожу в CRM, создаю account, но не вижу результата. Зато в событиях появилась ошибка: Error: ISV code threw exception: assembly: work.dll; class: work.CalloutComponent; entity: account, event: postcreate, exception: System.BadImageFormatException: Недопустимый формат файла 'work.dll'. Имя файла: "work.dll" at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm) at System.Activator.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) at Microsoft.Crm.Callout.CalloutHost.PostCreate(CalloutUserContext userContext, CalloutEntityContext entityContext) === Pre-bind state information === LOG: Where-ref bind. Location = D:\Program Files\Microsoft CRM\server\bin\assembly\work.dll LOG: Appbase = d:\windows\system32\inetsrv\ LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). LOG: Attempting download of new URL file:///D:/Program Files/Microsoft CRM/server/bin/assembly/work.dll. Как я понял проблемма в dll. Но она взята из SDK. От сюда и вопрос - почему она ругается? |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Не работает Callout после апгрейда до CRM 4.0 | 1 | |||
Как запустить CallOut | 0 | |||
CallOut в CampaignItem | 0 | |||
General Callout code exception | 3 | |||
Использование Callout | 1 |
|