2012-04-18 140 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中修改的字符串的長度太長。

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

問候...