2012-04-18 138 views
0

我的CustomListDefinition和CustomEventReceiver存在问题。SharePoint自定义列表定义上的SharePoint EventReceiver ItemUpdating问题

ListDefinition工作正常。我可以创建它的列表,一切看起来应该如此。我的EventReceiver对以下四个事件起作用:ItemAdding,ItemAdded,ItemUpdating和ItemUpdated。

在通过WebInterface添加/更新ListItems时,万物的工作原理没有任何错误。当我尝试创建或通过C#(或PowerShell的)编辑列表项,我得到以下错误:

"Unknown Status Module: 33 Message: 134"

,即使代码是做真正什么!我用一个新的空的EventReceiver重现了这个问题,它附加在我自定义的ListDefinition的ItemUpdating事件上。

此问题仅发生在ItemUpdating事件中。当我在没有这个事件的情况下部署我的解决方案时,一切都很顺利。将EventReceiver部署到标准列表(例如Task ListDefinition)中也没有像上面那样的问题。

所以我的结论是,我的ListDefinition中必定有一个错误。

有人可以帮我找到错误吗?

我的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> 

该代码是一点点匿名和可能包含一些打字错误,因为这一点。 ;)

希望你能帮我找到我的问题。

编辑: 我发现,这个错误发生在事件日志中:

Error loading and running event receiver MyProject.BookingItemEventReceiver in OC.Sommerfest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=asdasdasd. Additional information is below.

事件ID是6875.

+0

你有没有检查你的Event接收器工作是否完美?意味着连接你的调试点?我认为Event Event Event Firing存在问题。 – Jigs 2012-04-18 12:58:32

+0

嘿,谢谢你的建议。我有一个附加到我的ListDefinition的EventReceiver,它工作。我创建了一个新的沙盒解决方案,并在ItemUpdating的ListDefinition上添加了一个EventReceiver触发器。所以现在我确信问题不是我的ListDefinition,而是我的EventReceiver或者程序集/解决方案......我会试试! – skorzinetzki 2012-04-18 13:44:13

回答

0

尝试更新列表项的代码中EventFiringEnabled与设置为false。

类似:

this.EventFiringEnabled = false; 
    //item updated logic 
    this.EventFiringEnabled = true; 
+0

即使itemupdating函数中没有代码,也会发生这种情况。 – skorzinetzki 2012-04-19 11:22:57

+0

看来,我有问题,因为沙箱解决方案。还有什么帮助?无法在沙箱解决方案中部署事件接收器吗? – skorzinetzki 2012-04-19 14:27:21

+0

yes.its可以在SB.Plz中部署eventreceivers阅读此:http://msdn.microsoft.com/en-us/library/ff798382.aspx也可能有所帮助:http://online.appdev.com/边缘/博客/ doug_ware /存档/ 2011/08/05 /尖端调试特征事件 - 接收机功能于SharePoint的沙箱-solutions.aspx – Jigs 2012-04-22 12:11:24

0

我有同样的问题,我目前正试图解决的问题。 在我的情况下,使用由Site Contents Menu创建的自定义列表。

  1. 但我检查错误出现时,在一个捕获内部抛出未处理的异常。

  2. 另一个原因可能是您在errormessage中修改的字符串的长度太长。

如果我找到了我分享的新解决方案。

问候...