C# 简单的自动托管SharePoint应用程序从未启动远程事件接收器

C# 简单的自动托管SharePoint应用程序从未启动远程事件接收器,c#,.net,sharepoint,C#,.net,Sharepoint,编辑:我将其更改为SharePoint托管的应用程序,该应用程序仅使用web部件显示公告。它仍然没有成功 <AllUsersWebPart WebPartZoneID="full" WebPartOrder="0"> <![CDATA[ <webParts> <webPart xmlns="http://schemas.microsoft.com/WebPart/v3"> <metaData> <type na

编辑:我将其更改为SharePoint托管的应用程序,该应用程序仅使用web部件显示公告。它仍然没有成功

<AllUsersWebPart WebPartZoneID="full" WebPartOrder="0">
    <![CDATA[ 
  <webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
  <metaData>
  <type
name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart,
Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,
PublicKeyToken=71e9bce111e9429c" />
  <importErrorMessage>
  Cannot import this Web Part.
  </importErrorMessage>
  </metaData>
  <data>
    <properties>
      <property name="Title"
       type="string">Announcements</property>
      <property name="ListDisplayName"
       type="string">Announcements</property> 
       <property name="ChromeType"
       type="chrometype">TitleOnly</property>
    </properties>
  </data>
</webPart>
问题是这个代码永远不会触发。我可以创建任意数量的列表项,事件永远不会触发。我甚至让它抛出一个即时异常,并总是返回一个错误,但它从未触发。它肯定与应用程序的公告列表相关联,并且应该捕捉到正确的事件。下面是Elements.xml中的一个片段

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="10000">
    <Receiver>
      <Name>AnnouncementsReceiverItemAdding</Name>
      <Type>ItemAdding</Type>
      <SequenceNumber>10000</SequenceNumber>
      <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
    </Receiver>
    <Receiver>
      <Name>AnnouncementsReceiverItemDeleting</Name>
      <Type>ItemDeleting</Type>
      <SequenceNumber>10000</SequenceNumber>
      <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
    </Receiver>
    <Receiver>
      <Name>AnnouncementsReceiverItemAdded</Name>
      <Type>ItemAdded</Type>
      <SequenceNumber>10000</SequenceNumber>
      <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
    </Receiver>
  </Receivers>
</Elements>

公告接收添加
项目添加
10000
~remoteAppUrl/Services/AnnouncementsReceiver.svc
公告ReceiverItemDelete
项目删除
10000
~remoteAppUrl/Services/AnnouncementsReceiver.svc
已添加公告
添加项目
10000
~remoteAppUrl/Services/AnnouncementsReceiver.svc

我还确认它正在由Package.Package部署。我已经智穷透顶了。

是的,VS 2013中应用程序的部署非常繁琐,因为缓存和往常一样,与现实脱节(缓存是我存在的祸根!)。每当事情停止正常工作时,请尝试以下方法:

  • 退出VS 2013
  • 从cmd提示符运行以下命令: 净停止时间sptimerv4, iisreset/noforce/timeout:300, 净启动sptimerv4
  • 关闭所有浏览器窗口,开始VS 2013,设置断点,按play

  • 根据需要冲洗并重复。

    按钮1\u单击事件处理程序?Default.aspx的接线位置。非常基本:…elements.xml的其余部分是什么?您定义了“Receivers”标记的listtemplateid了吗?将整个内容添加到OP中。它确实有一个listtemplateid
    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers ListTemplateId="10000">
        <Receiver>
          <Name>AnnouncementsReceiverItemAdding</Name>
          <Type>ItemAdding</Type>
          <SequenceNumber>10000</SequenceNumber>
          <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
        </Receiver>
        <Receiver>
          <Name>AnnouncementsReceiverItemDeleting</Name>
          <Type>ItemDeleting</Type>
          <SequenceNumber>10000</SequenceNumber>
          <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
        </Receiver>
        <Receiver>
          <Name>AnnouncementsReceiverItemAdded</Name>
          <Type>ItemAdded</Type>
          <SequenceNumber>10000</SequenceNumber>
          <Url>~remoteAppUrl/Services/AnnouncementsReceiver.svc</Url>
        </Receiver>
      </Receivers>
    </Elements>