0

我的 CustomListDefinition 和 CustomEventReceiver 有问题。

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

通过 WebInterface 添加/更新 ListItems 时,一切正常,没有任何错误。当我尝试通过 C#(或 PowerShell)创建或编辑 ListItem 时,我收到以下错误:

“未知状态模块:33 消息: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(内容类型和字段定义定义如下面的代码)

<?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>

该代码有点匿名,因此可能包含一些打字错误。;)

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

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

在 OC.Sommerfest 中加载和运行事件接收器 MyProject.BookingItemEventReceiver 时出错,Version=1.0.0.0,Culture=neutral,PublicKeyToken=asdasdasd。附加信息如下。

事件 ID 为 6875。

4

2 回答 2

0

我也有同样的问题,目前正在努力解决。在我的情况下,使用由站点内容菜单创建的自定义列表。

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

  2. 另一个原因可能是您在错误消息中重新修改的字符串的长度太长。

如果我找到一个新的解决方案,我会分享。

问候...

于 2015-02-20T12:14:11.980 回答
0

尝试在EventFiringEnabled设置为 false 期间更新列表项代码。

就像是 :

   this.EventFiringEnabled = false;
    //item updated logic
   this.EventFiringEnabled = true;
于 2012-04-18T13:52:26.570 回答