问题标签 [event-receiver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint - 如何更新 SharePoint 中列表的 SPItemEventReceiver 程序集版本?
我们有一个 SPItemEventReceiver 编译到它自己的程序集中。
我们正在使用 STSDev 将此 EventReceiver 作为一项功能打包一个 SharePoint 解决方案。我没有将 SPItemEventReceiver 分配给 elements.xml 中的特定 ListTemplateId,而是在 feature.xml 中链接一个 ReceiverAssembly 并以编程方式将 SPItemEventReceiver 分配给多个 SPList 项。
我正在使用 FeatureDeactivating 与上述代码相反,从列表中删除 EventReceiver。
问题:
以后 LabReportEventHandlers 更新,版本发生变化,我应该如何处理?
这些是我能想到的选项:
停用/重新激活功能——我会将更新后的 dll 包装回 SharePoint 解决方案文件,更改上面的代码以反映新版本,然后使用 stsadmin 升级解决方案。然后我会停用/重新激活该功能。
将程序集重定向添加到 web.config。
不要碰撞 LabReportEventHandlers 版本号。
更改解决方案版本是否对我有帮助?
我认为这3个选项存在问题:
停用该功能后,有人可以在我重新激活之前更新项目。
我不想手动编辑 web.config,所以我会改用 sharepoint API。我将在哪里运行该代码?
这是完全错误的,但很容易。
sharepoint - SharePoint:从 ContentType 注销 EventReceiver 时出错
我在从内容类型中注销某些事件接收器时遇到了一些问题。内容类型和接收器是我自己部署和注册的,所以我不会尝试删除任何 MOSS 内置或内部事件接收器。
我试图用以下代码片段存档:
不幸的是,命令“type.Update()”引发了一个异常,告诉我无法修改集合。正如您在代码中看到的那样,我已经尝试了不同的方法来解决此问题,例如允许不安全的更新或以提升的权限运行此代码。但我总是得到同样的例外。
那么我做错了什么?
sharepoint - 更新 Sharepoint 文档库中的文件
简单地说,我在文档库中有一个自定义的 editForm.aspx,它使用我自己的自定义 dll。当用户编辑记录时,我可以更新与文件关联的所有属性,但是,当您更新实际文档(即替换它)然后更新()(或 SystemUpdate())时,您会得到以下信息:
文件 BLAH.doc 已由 DOMAIN\ACCOUNT 于 2009 年 5 月 1 日 09:41:12 +0100 修改。
文件被替换了,但文件属性都没有更新,所以路径和文件名和旧版本一样!?
这个帖子: http ://hristapavlov.wordpress.com/2008/05/14/uploading-a-file-event-receivers-the-file-has-been-modified-by/ 建议使用事件接收器,任何人都这样做使用 DisableEvents() 与工作流有类似的问题。这很棒,但我不知道如何更改我的编辑表单以与事件接收者一起使用。是否有关于更新文档库中的文件以及如何使用事件接收器来完成此操作的文档/教程?
sharepoint - 如何使用远程调试器调试 SharePoint EventReceiver?
我编写了一个 SharePoint EventReceiver (Windows SharePoint Services 3.0),并希望使用在另一台计算机上运行的 Visual Studio 2008 SP1 对其进行调试。我尝试了以下步骤:
- 安装事件接收器(我知道这是可行的,因为日志文件证明代码已执行)。
- 在 SharePoint 服务器的 GAC 中注册我的事件接收器类库(在调试模式下构建)。
- 在 SharePoint 服务器上启动 Visual Studio 远程调试监视器。
- 从本地计算机附加到 SharePoint 服务器上的进程 w3wp.exe。
不幸的是,Visual Studio 告诉我我设置的断点不会被命中。我猜当将程序集安装到 GAC 时,调试符号(或调试所需的任何内容)都会丢失。
我可以做些什么来调试我的事件接收器?据我所知,通过自定义程序集扩展 SharePoint 的唯一方法是将它们部署到 GAC - 我在这里遗漏了什么吗?
最好的问候
奥利弗·哈纳皮
.net - 将 EventReceiver 附加到共享点站点的所有列表
我们可以编写一个在更新任何列表时触发的事件接收器吗?我们必须为 eventreceiver 指定的 listtemplateid 使我们的代码特定于一种列表。如果我们想让代码为所有站点列表上的事件执行怎么办?
sharepoint - 使用事件接收器更新项目的“标题”字段
我编写了一个在“页面”列表的“ItemAdded”事件上激活的事件接收器。代码运行良好,但我的问题是 - 在调用我的 Sub ItemAdded 期间,我想更改属于当前列表项的字段的值(在本例中为 aspx 页面)。
我的想法是我可以将“标题”字段配置为另一个值,由我的事件接收器配置,并且当用户在编辑模式下看到页面时,新标题将被保存为页面。这是我目前的尝试:
如您所见,我已尝试过 Update() 和 SystemUpdate(),但在每种情况下,当用户尝试签入页面时,他们都会收到一条消息,指出该页面已被外部修改。另外,在查看页面时,标题字段的值没有改变。
我正在尝试做的事情是可能的,还是有更好的方法?
干杯。贾斯。
sharepoint - 加载和运行事件接收器 Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver 时出错
我有一个自定义 SharePoint 工作流附加到一个自定义 ItemAdded 事件接收器,该接收器工作正常,直到我使用 WSPBuilder 提升它的最后一个类型。
我的代码非常接近这个例子: http: //www.codeproject.com/KB/sharepoint/MOSS_FolderContentTypeWF.aspx
我过去使用过 WSPBuilder,但没有用于这个项目,它似乎以某种方式破坏了我的工作流程。
我的工作流程没有启动,即使它应该启动,当我查看事件日志时,我看到以下错误:
在 Microsoft.SharePoint 中加载和运行事件接收器 Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver 时出错,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c。
附加信息如下。
: 指定的对象不属于列表。
所以我禁用了我的事件处理程序,甚至删除了它,但这个文档库仍然发生错误。该错误不会在其他站点的文档库中生成。我是否破坏了 SharePoint 内部的事件接收器?
想法?
sharepoint - Sharepoint:事件接收器:项目添加
有人在 Sharepoint 的事件接收器中成功使用“ItemAdding”方法进行验证吗?
我认为它无法正常用于验证目的,因为它似乎:
- 您无法访问刚刚在表单中输入的数据
- 如果您添加错误消息,Sharepoint 不会显示带有错误的表单,而是显示
大而丑陋的错误页面。
这是我目前在网上找到的 ItemAdding 方法:
http://www.sharepoint-tips.com/2006/09/synchronous-add-list-event-itemadding.html
http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=25
无论如何,如果有人成功地使用了该方法,请告诉我如何,因为我认为它只是损坏/丢失了一些东西!
谢谢!
sharepoint - 发生未处理的访问异常,msmq,Sharepoint 错误
我的服务器重新启动后出现了一个问题。我在 SharePoint 中有一些功能,可以做各种事情。他们所做的一件事是将项目添加到几个不同的 MSMQ 队列中。服务器重新启动后,如果我尝试登录 SharePoint 并转到我的自定义页面,然后单击该页面中的一个按钮(然后将创建 msmq 项),我会立即进入一个显示下列的:
该网站拒绝显示此网页 此错误(HTTP 403 Forbidden)表示 Internet Explorer 能够连接到该网站,但它没有查看该网页的权限
如果我深入研究事件日志,我会在应用程序中发现以下错误:
此外,如果我深入研究 SharePoint 日志,我会发现以下错误:
访问 /my/site/url/MyPage.aspx 时出现应用程序错误,Error=Access is denied。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))服务器堆栈跟踪:在 System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(字符串 nodeName,Guid resourceManagerIdentifier,IntPtr managedIdentifier,Boolean& nodeNameMatches,UInt32& whereaboutsSize,CoTaskMemHandle& whereaboutsBuffer,IResourceTransactionshim&resourceManagerShim)在系统。 .Oletx.DtcTransactionManager.Initialize() 在 System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory() 在 System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(TransactionOptions 属性) 在 System.Transactions.TransactionStatePromoted.EnterState(InternalTransaction tx) ...
...在 System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
在 System.Transactions.Transaction.Promote() 在 System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) 在 System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction) 在 System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction(MsmqTransactionMode transactionMode) 在 System .ServiceModel.Channels.MsmqQueue.SendDtcTransacted(NativeMsmqMessage 消息,MsmqTransactionMode transactionMode) 在 System.ServiceModel.Channels.MsmqQueue.Send(NativeMsmqMessage 消息,MsmqTransactionMode transactionMode) 在 System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend(Message 消息,TimeSpan 超时) 在System.ServiceModel.Chann...
我有两台虚拟机,一台用于网络(共享点)机器,一台用于数据库机器(存储所有内容数据库等)。DB 服务器是一个主域控制器,两台机器都属于同一个域。我创建了一个域用户用于 SharePoint 应用程序池。
奇怪的是,可以通过转到我的应用程序的不同部分并运行该代码(这也会在 msmq 中添加一个条目)来消除错误。完成后,应用程序的所有其余部分都将正常工作。
任何帮助将不胜感激。
注意:我注意到该错误与 SharePoint 网站的 IIS 中的匿名用户(IUSR ...)有关。我将该用户更改为域管理员用户,并且该错误不再发生。所以,这与IUSR..用户的权限有关,但我不知道是什么......
c# - SPItemEventReceiver 上下文 SiteId/WebUrl 不正确
我创建了一个在项目更新时触发的 SharePoint 事件接收器。接收方需要访问 AfterProperties 和 ListItem。
当使用 IP 地址 ( http://10.0.4.50/sites/ ) 从 SharePoint Web 应用程序触发事件接收器时,它会在访问 SPItemEventProperties 中的 SiteId 和 WebUrl 时 引发FileNotFoundException 。找不到位于http://10.0.4.50/sites/companyName的 Web 应用程序。验证您是否正确键入了 URL。
使用主机名触发事件接收器时,在站点集合http://computerhostname/sites/companyName的设置中指定。这工作正常,不会抛出异常。