WD1X.COM - 问答一下,轻松解决,电脑应用解决专家

您好,欢迎来问答一下![登录] [注册]


已解决问题数:10040
待解决问题数:17
今天,你遇到了什么技术难题?我要提问
页面导航:问答一下 > 硬件专家问答
  • 已解决
匿名用户
117.140.98.*

NET Framework,加载可能会很危险

解决时间 解决时间:2018/11/03 13:59   热度:4285

尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理。此发行版的 .NET Framework 默认情况下不启用 CAS 策略,因此,此加载可能会很危险。如果此加载不是要对程序集进行沙盒处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=155569

  • 满意答案
  • 满意回答
头像
WD1X专家团
回答于:2018/09/09 12:00

错误原因:由于在项目中引用了外部dll,DotNET的安全机制阻止加载一个本地网或互联网上的assembly。

方法1,参考https://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx进行解决,配置app.config就可以完<configuration>

  <runtime>

      <loadFromRemoteSources enabled="true"/>   </runtime></configuration>

方法2,Assembly类有一个静态函数UnsafeLoadFrom,这个函数在加载一个assembly的时候,不会进行一些安全检查。加载dll语句修改为:

    string dll = @"Z:\test.dll";  

    Assembly a = Assembly.UnsafeLoadFrom(dll);  

方法3, Assembly的load方法有很多的重载,可以使用其中的一个参数为byte[]的load函数。代码如下:

    string dll = @"Z:\test.dll"; ;  

    byte[] assemblyBuffer = File.ReadAllBytes(dll);  

    Assembly a = Assembly.Load(assemblyBuffer);  

提问者对回答的评价:

谢谢您的解答!

支持  反对 

支持(0) 反对(0)
其他回答 (共0条)
关于我们 | 版权声明 | 网站导航 | Tag标签 |
Copyright © 2021-2022 WD1X.Com Inc All Rights Reserved.