Проблемы с обновлением элемента SharePoint EventReceiver в определении пользовательского списка
У меня проблема с моим CustomListDefinition и CustomEventReceiver.
ListDefinition работает отлично. Я могу создавать списки из него, и все выглядит так, как должно. Мой EventReceiver действует на следующие четыре события: ItemAdding, ItemAdded, ItemUpdating и ItemUpdated.
При добавлении / обновлении ListItems через WebInterface все работает без ошибок. Когда я пытаюсь создать или отредактировать ListItem через C# (или PowerShell), я получаю следующую ошибку:
"Неизвестный модуль статуса: 33 Сообщение: 134"
даже когда код действительно ничего не делает! Я воспроизвел проблему с новым и пустым EventReceiver, который присоединен к событию ItemUpdating моего пользовательского ListDefinition.
Эта проблема возникает только при событии ItemUpdating. Когда я разворачиваю свое решение без этого события, все идет хорошо. Развертывание EventReceiver в стандартном списке (например, Task ListDefinition) также не вызывает проблем, как описано выше.
Итак, мой вывод: в моем ListDefinition должна быть ошибка.
Может кто-нибудь помочь мне найти ошибку?
My Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Do not change the value of the Name attribute below. If it does not match the folder name of the List Definition project item, an error will occur when the project is run. -->
<ListTemplate
Name="MyProject.ListDefinition.Booking"
Type="10001"
BaseType="0"
OnQuickLaunch="TRUE"
SecurityBits="11"
AllowDeletion="TRUE"
DisallowContentTypes="FALSE"
Sequence="410"
DisplayName="Anmeldung"
Description="Anmeldeliste für ein Fest"
Image="/_layouts/images/itgen.png"/>
</Elements>
Мой Schema.xml (ContentType и определения полей, определенные в приведенном ниже коде)
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Fest Anmeldung" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/Fest-MyProject.ListDefinition.Booking" BaseType="0" EnableContentTypes="TRUE" DisableAttachments="TRUE" EnableMinorVersions="FALSE" ModeratedList="FALSE" PrivateList="FALSE" VersioningEnabled="FALSE" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentType ID="0x0100d05f16219b3543eb81f2b7707d50a4d3" Name="externer Teilnehmer" Group="MyProject.Fest" Description="externer Teilnehmer am Fest" Inherits="TRUE" Version="0">
<FieldRefs>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Titel" Required="FALSE" />
<FieldRef ID="{F168D67A-8BE4-42ED-B3D6-D04C3CE487F9}" Name="MyProjectFestFirstName" />
<FieldRef ID="{EA8D4CAA-A219-43ED-8796-345E387BD4C6}" Name="MyProjectFestLastName" />
<FieldRef ID="{A29AE60F-BCCA-47B5-A498-17B4E7FD4297}" Name="MyProjectFestParticipates" />
<FieldRef ID="{08885975-334B-4BB6-B7A7-052610C2F885}" Name="MyProjectFestPartner" />
<FieldRef ID="{5E480332-98F6-4328-955E-037F6F1C66DE}" Name="MyProjectFestChildrenCount0To3" />
<FieldRef ID="{0BD4A5E1-171F-41AA-9628-979694549807}" Name="MyProjectFestChildrenCount4To8" />
<FieldRef ID="{90F8CEE7-289B-499B-AA6E-3BE92568948D}" Name="MyProjectFestChildrenCount9To15" />
<FieldRef ID="{9EB35619-530A-4149-9889-1CEDB7CF3C9F}" Name="MyProjectFestChildrenCount16" />
<FieldRef ID="{6B63D7A4-4FCC-4C16-979A-BB640FAADA61}" Name="MyProjectFestArrivalDate" />
<FieldRef ID="{B390E3B7-76C8-4E03-A54E-FD3106689FFE}" Name="MyProjectFestAccommodations" />
<FieldRef ID="{DEE42C9A-238E-4E93-971B-6BFE3BE5B53B}" Name="MyProjectFestFood" />
<FieldRef ID="{A6056EA2-E4B8-4555-B5FF-0CDD8FD415FC}" Name="MyProjectFestParticipantCount" />
<FieldRef ID="{C204C403-CDD5-4A09-AF58-A21D7AEBF985}" Name="MyProjectFestBranch" />
<FieldRef ID="{EF54ACED-E2BE-4EB7-BF39-1D2A46202DFC}" Name="MyProjectFestDescription" />
</FieldRefs>
</ContentType>
<ContentType ID="0x0100e498ffd129d6485fbe5174d501bbf362" Name="interner Teilnehmer" Group="MyProject.Fest" Description="interner Teilnehmer am Fest" Inherits="TRUE" Version="0">
<FieldRefs>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Titel" Required="FALSE" />
<FieldRef ID="{F168D67A-8BE4-42ED-B3D6-D04C3CE487F9}" Name="MyProjectFestFirstName" />
<FieldRef ID="{EA8D4CAA-A219-43ED-8796-345E387BD4C6}" Name="MyProjectFestLastName" />
<FieldRef ID="{A29AE60F-BCCA-47B5-A498-17B4E7FD4297}" Name="MyProjectFestParticipates" />
<FieldRef ID="{08885975-334B-4BB6-B7A7-052610C2F885}" Name="MyProjectFestPartner" />
<FieldRef ID="{5E480332-98F6-4328-955E-037F6F1C66DE}" Name="MyProjectFestChildrenCount0To3" />
<FieldRef ID="{0BD4A5E1-171F-41AA-9628-979694549807}" Name="MyProjectFestChildrenCount4To8" />
<FieldRef ID="{90F8CEE7-289B-499B-AA6E-3BE92568948D}" Name="MyProjectFestChildrenCount9To15" />
<FieldRef ID="{9EB35619-530A-4149-9889-1CEDB7CF3C9F}" Name="MyProjectFestChildrenCount16" />
<FieldRef ID="{6B63D7A4-4FCC-4C16-979A-BB640FAADA61}" Name="MyProjectFestArrivalDate" />
<FieldRef ID="{B390E3B7-76C8-4E03-A54E-FD3106689FFE}" Name="MyProjectFestAccommodations" />
<FieldRef ID="{DEE42C9A-238E-4E93-971B-6BFE3BE5B53B}" Name="MyProjectFestFood" />
<FieldRef ID="{A6056EA2-E4B8-4555-B5FF-0CDD8FD415FC}" Name="MyProjectFestParticipantCount" />
<FieldRef ID="{C204C403-CDD5-4A09-AF58-A21D7AEBF985}" Name="MyProjectFestBranch" ShowInDisplayForm="TRUE" ShowInEditForm="FALSE" />
<FieldRef ID="{3BAC8D07-9B0D-4D8A-8899-8A398E94A5DC}" Name="MyProjectFestSystemMitaId" ShowInDisplayForm="TRUE" ShowInEditForm="FALSE" />
<FieldRef ID="{026BDDB3-C776-4873-A82D-1A87BA4FE4B8}" Name="MyProjectFestSystemAccount" ShowInDisplayForm="TRUE" ShowInEditForm="FALSE" />
<FieldRef ID="{99EB27C2-156A-42AD-AC42-8BE91AE1CEC7}" Name="MyProjectFestActivityStatus" ShowInDisplayForm="TRUE" ShowInEditForm="FALSE" />
</FieldRefs>
</ContentType>
</ContentTypes>
<Fields>
<Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Type="Text" DisplayName="Titel" Required="FALSE" />
<Field
ID="{F168D67A-8BE4-42ED-B3D6-D04C3CE487F9}"
Name="MyProjectFestFirstName"
DisplayName="Vorname"
Type="Text"
Required="TRUE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{EA8D4CAA-A219-43ED-8796-345E387BD4C6}"
Name="MyProjectFestLastName"
DisplayName="Nachname"
Type="Text"
Required="TRUE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{A29AE60F-BCCA-47B5-A498-17B4E7FD4297}"
Name="MyProjectFestParticipates"
DisplayName="Teilnahme am Fest"
Type="Boolean"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Description="Falls nein, müssen die weiteren Felder nicht ausgefüllt werden!"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{08885975-334B-4BB6-B7A7-052610C2F885}"
Name="MyProjectFestPartner"
DisplayName="Teilnahme Partner"
Type="Boolean"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{5E480332-98F6-4328-955E-037F6F1C66DE}"
Name="MyProjectFestChildrenCount0To3"
DisplayName="Anzahl Kinder (0-3)"
Type="Number"
Decimals="0"
Min="0"
Max="10"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{0BD4A5E1-171F-41AA-9628-979694549807}"
Name="MyProjectFestChildrenCount4To8"
DisplayName="Anzahl Kinder (4-8)"
Type="Number"
Decimals="0"
Min="0"
Max="10"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{90F8CEE7-289B-499B-AA6E-3BE92568948D}"
Name="MyProjectFestChildrenCount9To15"
DisplayName="Anzahl Kinder (9-15)"
Type="Number"
Decimals="0"
Min="0"
Max="10"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{9EB35619-530A-4149-9889-1CEDB7CF3C9F}"
Name="MyProjectFestChildrenCount16"
DisplayName="Anzahl Kinder (16+)"
Type="Number"
Decimals="0"
Min="0"
Max="10"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{6B63D7A4-4FCC-4C16-979A-BB640FAADA61}"
Name="MyProjectFestArrivalDate"
DisplayName="Anreise-Datum"
Type="DateTime"
Format="DateOnly"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{B390E3B7-76C8-4E03-A54E-FD3106689FFE}"
Name="MyProjectFestAccommodations"
DisplayName="Anzahl Übernachtungen"
Type="Number"
Decimals="0"
Min="0"
Max="10"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field
ID="{DEE42C9A-238E-4E93-971B-6BFE3BE5B53B}"
Name="MyProjectFestFood"
DisplayName="mitgebrachte Speise"
Type="Text"
Required="FALSE"
Sealed="TRUE"
AllowDeletion="FALSE"
Group="MyProjectFest"
Filterable="TRUE"
Sortable="TRUE" />
<Field ID="{3bac8d07-9b0d-4d8a-8899-8a398e94a5dc}" Name="MyProjectFestSystemMitaId" DisplayName="SYSTEM_MITA_ID" Type="Number" Decimals="0" Required="FALSE" Sealed="TRUE" AllowDeletion="FALSE" Group="MyProjectFest" />
<Field ID="{026bddb3-c776-4873-a82d-1a87ba4fe4b8}" Name="MyProjectFestSystemAccount" DisplayName="Account-Name" Type="Text" MaxLength="5" Required="FALSE" Sealed="TRUE" AllowDeletion="FALSE" Group="MyProjectFest" />
<Field ID="{99eb27c2-156a-42ad-ac42-8be91ae1cec7}" Name="MyProjectFestActivityStatus" DisplayName="Status" Type="Text" MaxLength="10" Required="FALSE" Sealed="TRUE" AllowDeletion="FALSE" Group="MyProjectFest" />
<Field ID="{ef54aced-e2be-4eb7-bf39-1d2a46202dfc}" Name="MyProjectFestDescription" DisplayName="Beschreibung" Type="Note" NumLines="3" Required="FALSE" Sealed="TRUE" AllowDeletion="FALSE" Group="MyProjectFest" Filterable="TRUE" Sortable="TRUE" />
<Field ID="{c204c403-cdd5-4a09-af58-a21d7aebf985}" Name="MyProjectFestBranch" DisplayName="Niederlassung" Type="Choice" Format="Dropdown" BaseType="Text" Required="FALSE" Sealed="FALSE" AllowDeletion="FALSE" Group="MyProjectFest" Filterable="TRUE" Sortable="TRUE">
<CHOICES>
<CHOICE>B</CHOICE>
<CHOICE>E</CHOICE>
<CHOICE>HH</CHOICE>
<CHOICE>K</CHOICE>
<CHOICE>M</CHOICE>
</CHOICES>
<Default>K</Default>
</Field>
<Field
ID="{A6056EA2-E4B8-4555-B5FF-0CDD8FD415FC}"
Name="MyProjectFestParticipantCount"
DisplayName="Teilnehmeranzahl"
Type="Calculated"
ResultType="Number"
ReadOnly="FALSE"
Hidden="FALSE"
Decimals="0"
Group="MyProjectFest">
<Formula>=IF([MyProjectFestParticipates]=TRUE,1+IF([MyProjectFestPartner]=TRUE,1,0)+[MyProjectFestChildrenCount0To3]+[MyProjectFestChildrenCount4To8]+[MyProjectFestChildrenCount9To15]+[MyProjectFestChildrenCount16],0)</Formula>
<FieldRefs>
<FieldRef Name="MyProjectFestParticipates" />
<FieldRef Name="MyProjectFestPartner" />
<FieldRef Name="MyProjectFestChildrenCount0To3" />
<FieldRef Name="MyProjectFestChildrenCount4To8" />
<FieldRef Name="MyProjectFestChildrenCount9To15" />
<FieldRef Name="MyProjectFestChildrenCount16" />
</FieldRefs>
</Field>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu">
</FieldRef>
<FieldRef Name="MyProjectFestFirstName" />
<FieldRef Name="MyProjectFestLastName" />
<FieldRef Name="MyProjectFestParticipates" />
<FieldRef Name="MyProjectFestParticipantCount" />
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments">
</FieldRef>
<FieldRef Name="LinkTitle">
</FieldRef>
<FieldRef Name="MyProjectFestFirstName" />
<FieldRef Name="MyProjectFestLastName" />
<FieldRef Name="MyProjectFestParticipates" />
<FieldRef Name="MyProjectFestParticipantCount" />
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>
Код немного анонимный и может содержать некоторые ошибки при печати.;)
Надеюсь, ты поможешь мне найти мою проблему.
Изменить: я обнаружил, что эта ошибка происходит в журнале событий:
Ошибка загрузки и запуска приемника событий MyProject.BookingItemEventReceiver в OC.Sommerfest, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=asdasdasd. Дополнительная информация ниже.
Идентификатор события - 6875.
2 ответа
Попробуйте обновить код списка во время EventFiringEnabled
с установленным ложным.
что-то вроде:
this.EventFiringEnabled = false;
//item updated logic
this.EventFiringEnabled = true;
У меня та же проблема, которую я сейчас пытаюсь решить. В моем случае используйте пользовательский список, созданный с помощью меню содержимого сайта.
Но я проверил, появляется ли ошибка, когда внутри перехвата выдается необработанное исключение.
Другой причиной может быть длина строки, которую вы вернули в сообщении об ошибке, - длинная.
Если я найду новое решение, я поделюсь.
С уважением...