使用C#开发ActiveX控件,封装到浏览器使用,出现找不到XXXX.dll的异常解决
来源:互联网 发布:爱淘宝红包怎么没了 编辑:程序博客网 时间:2024/06/05 15:37
背景:
项目中使用C#开发一款组件,用于Tomcat+Jsp项目中,在浏览器中通过Active组件的方式调用,部分功能会出现找不到 XXX.dll的问题。
异常原因:
通过浏览器调用C# Active控件时,默认到IE浏览器的Bin目录下寻找 控件的dll文件,所以引发该异常。
解决方案:
public XXXActive() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; } /// <summary> /// 未处理异常 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { //("未处理异常 : "+e); } /// <summary> /// 加载非默认位置的程序集 /// </summary> public Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs e) { try { if (e.Name.Split(',')[0] == "XXXActive") { var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (null == dir) return null; Environment.CurrentDirectory = dir; var path = Path.Combine(Environment.CurrentDirectory, "XXXActive.dll"); return Assembly.LoadFrom(path); } return null; } catch (Exception) { return null; } }
0 0
- 使用C#开发ActiveX控件,封装到浏览器使用,出现找不到XXXX.dll的异常解决
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 使用C#开发ActiveX控件
- 记阿里巴巴第二次电面(实习)
- Windows server 2008 网络负载均衡配置
- 第四周项目2三角形类(2)
- MFC读写INI配置文件
- 第二周作业---关于“RSA”,“数字签名”,“公钥”,“DES”的解释
- 使用C#开发ActiveX控件,封装到浏览器使用,出现找不到XXXX.dll的异常解决
- JDK容器类里的迭代器模式学习
- 第六章 表视图高级应用
- 主流框架中DOMContentLoaded事件的实现
- LeetCode Remove Duplicates from Sorted List
- poj1088 Ski
- 算法第二次作业
- [oracle] to_date() 与 to_char() 日期和字符串转换
- listen()函数中backlog参数分析