解决在SharePoint 2010/2013部署自己的Event Handler后,抛出”不能加载被引用的第三方的程序集"的问题

原创 2014年07月12日 10:15:41

今天在处理客户的一个问题的时候,我们已经把我们SharePoint EventHandler依赖的第三方的TIBCO.EMS.dll注册到GAC里面了,但是日志里面还是抛出了不能加载被引用的第三方的程序集的异常。

 

在描述解决方案之前,我在这里把相关背景交代一下,我们知道SharePoint提供了Event handler(用户操作事件钩子)让SharePoint用户开发自己的业务逻辑。SharePoint的Event Handler说白了就是,当SharePoint用户操作SharePoint的数据的时候,比如在SharePoint List(列表)中添加一行数据(ListItem)时,这个操作行为会被Event Handler 监听到,我们就可以把我们的业务逻辑写到SharePoint提供的Event Handler的接口中;这样一旦增删改查事件发生后,就会调用在Event Handler里面我们自己写的业务逻辑;在我们自己写的业务逻辑里面可以引用第三方库去实现自己的业务需求;比如在我们自己开发测试的这个环境里面,我们调用了TIBCO.EMS.dll 库去把消息发送到TIBCO的JMS服务器上。这个就是为什么我们需要用GACUtil工具命令把TIBCO.EMS.dll注册到GAC里面去的原因。

 

OK,基本背景交代完毕,那么现在我们来看具体的问题,当我们把我们自己定制的SharePoint Event Handler依赖的TIBCO.EMS.dll注册到GAC里面了,然后再SharePoint的

网站上面修改一条测试数据。 这个时候,SharePoint Event Handler的事件的的确确触发了,但是却抛出了下面的异常,

 it catchs the excpetion:Could not load file or assembly 'TIBCO.EMS, Version=1.0.700.12, Culture=neutral, PublicKeyToken=5b83db8ff05c64ba' or one of its dependencies. The system cannot find the file specified.

 

奇怪,我们明明把TIBCO.EMS.dll注册到GAC里面去了,为什么执行Event Handler的IIS的w3wp.exe的后台进程加载不到TIBCO.EMS.dll库呢?这个问题纠结了我不少的时间。

后面在网上找到一篇文章,http://blogs.technet.com/b/speschka/archive/2013/10/26/another-quot-could-not-load-file-or-assembly-quot-error-resolved.aspx 里面描述了和我这边类似的问题,我抱着试一试的态度,把SharePoint的IIS重新启动了一下。

 

感谢上帝,这个问题解决了。今天花一个小时的时间,把我遇到的这个问题整理出来,希望大家遇到类似的问题后,不要太过于纠结,可以试试重新启动SharePoint的IIS,试试看有没有效果。

 

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Assembly.Load()不能加载程序集的问题

在编程中,使用反射(IoC)是一个很好的架构。在.Net中,System.Reflection命名空间提供了对反射的支持。然而,很多朋友在使用Assembly.Load()方法时, 却不能正确装载程序...

机房重构所遇问题"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件"的解决办法集锦

未能加载文件或程序集“DAL”或它的某一个依赖项,系统找不到指定的文件;如何关闭VS的”使用调试器调试“的提示;源文件与模块生成时的文件不同...

在IIS部署Silverlight应用和WCF RIA Services,出现异常:未能加载文件或程序集“System.ServiceModel.DomainServices.Hosting, Ver

项目用wcf ria +silverlight,发部后,部署到iis上时,报如下错误 Invoke operation 'File_GetMenuFileName' failed .远程服务器返回了...

[C#]解决第三方控件引起的"类型Universe无法解析程序集"问题

问题由来:项目中要用到C#的一个开源控件 DockPanel,按照方法加入第三控件(DockPanel)后,对它进行使用。可是在窗体拖动控件的时候,发现了一个错误: 类型Universe无法解析程...

未能加载文件或程序集或它的某一个依赖项(针对资源问题,x86文件在x64上编译失败)

在开发中遇到过这样的问题,在x86系统上面可以编译通过的程序,在x64系统上编译出错,提示 未能加载文件或程序集 或它的某一个依赖项,如下图所示: 产生此问题的原因: 64 位系统上设置编译...

C#中使用Assembly.LoadFile()加载程序集的抛异常的问题

程序集model.dllusing System;namespace model { public class Student { public string sno ...

C#关于程序集生成失败【引用DLL及第三方DLL没有强名称的解决办法】

C#关于程序集生成失败及引用DLL及第三方DLL没有强名称,一个Assembly希望封装成为ActiveX/COM组件,那么它必须拥有强名(Strong Name),也就是说在编译的时候需要指定S...

resx文件在X64位编译,提示“未能加载文件或程序集”的问题?

resx文件在X64位编译,提示“未能加载文件或程序集”的问题? 解答: 错误现象如下 此问题最多在VS2010或者(SP1)上出现过,属于VS2010的缺陷,估计在VS更高的版本不会出现此问题。 通...
  • wlanye
  • wlanye
  • 2014年08月08日 10:33
  • 973

未能加载文件或程序集或它的某一个依赖项(针对资源问题,x86文件在x64上编译失败)

在开发中遇到过这样的问题,在x86系统上面可以编译通过的程序,在x64系统上编译出错,提示 未能加载文件或程序集 或它的某一个依赖项,如下图所示: 产生此问题的原因: 先检查确保应该添...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决在SharePoint 2010/2013部署自己的Event Handler后,抛出”不能加载被引用的第三方的程序集"的问题
举报原因:
原因补充:

(最多只允许输入30个字)