- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的公司发布了一个产品,它在 SPLists 上注册 SharePoint EventReceiver,监控更改。我一直在 GAC 中注册它,它运行得很好。但是,我们的一位客户对我们在 GAC 中安装的程序集表示不满,并希望我们将二进制文件移动到 SharePoint BIN 目录,并执行该方案工作所需的其他安全/信任伏都教。
当我尝试注册不在 GAC 中的事件接收器时,我收到非常具体的异常,其消息为:“事件接收器程序集不在 GAC 中。”我将此解释为 SharePoint 要求在 GAC 中安装事件接收器。此外,我在 MSDN 上找到了这个:http://msdn.microsoft.com/en-us/library/ff407965.aspx :“事件接收器和处理事件”部分说明
SharePoint Foundation event handlers are a compiled module of custom managed code whose invocation is triggered by a specified event that you have specified. Event handler code is compiled into a .dll file and deployed to the GAC.
最佳答案
事件接收器程序集不能仅安装在“bin”中,因为这样 .net 框架无法找到它们。
当您的程序集从“bin”加载时,这是因为程序集加载器使用探测来定位程序集。首先在 GAC 中查找,然后在当前工作目录下查找名为“bin”的目录。
因此,您用于运行 Web 界面的所有代码 - ASPX 页面、Web 服务等的代码隐藏都可以放在 inetpub..../bin 中,因为您的 Web 应用程序的工作目录在那里。
但是,工作流和计划的“计时器作业”由 OWSTIMER.exe(一种 Windows 服务)执行。作为典型的 Windows 服务,它的工作目录位于 c:\windows 中。
这意味着,如果您将程序集放在 inetpub...\bin 中的某个位置,则 owstimer 将找不到它。
因此,必须将事件处理程序等共享程序集部署到 GAC。
关于.net - 是否必须在 GAC 中安装 SharePoint 事件接收器,如果是,所有相关程序集也必须安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621468/
我是一名优秀的程序员,十分优秀!