我有一个网络映射盘,盘符是Z:。在Z盘下面,放了一个assembly,名为test.dll。然后,我在VS2010中建立了一个.NET 4.0的工程,程序中有下面一段代码:

string dll = @"Z:\test.dll";
Assembly a = Assembly.LoadFrom(dll);

执行代码,抛出FileLoadException异常:Could not load file or assembly 'file:///Y:\bb\nvo_cas.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)。

深入到内部异常:An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.。

看来是.NET的安全机制阻止加载一个网络上(本地网或者互联网)的assembly。

【办法一】

根据提示,找到了MSDN的一篇文章。文章给出的解决办法是:在程序的配置文件中加入下面的xml片段:

<configuration>
......
<runtime>
<!-- WARNING: will load assemblies from remote locations as fully trusted! -->
<loadFromRemoteSources enabled="true" />
</runtime>
......
</configuration>

按照这个解决办法,程序运行正确。

MSDN链接:http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx

【办法二】

Assembly类有一个静态函数UnsafeLoadFrom,这个函数在加载一个assembly的时候,不会进行一些安全检查。将原先的代码修改如下即可:

string dll = @"Z:\test.dll";
Assembly a = Assembly.UnsafeLoadFrom(dll);

【办法三】

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

string dll = @"Z:\test.dll"; ;
byte[] assemblyBuffer = File.ReadAllBytes(dll);
Assembly a = Assembly.Load(assemblyBuffer);

转载:http://blog.csdn.net/studying/article/details/6663627

加载网络映射盘中的assembly失败的更多相关文章

  1. 加载网络映射盘中的assembly失败的处理办法

    错误症状: 1.{"未能加载文件或程序集“file://*****”或它的某一个依赖项.不支持操作. (异常来自 HRESULT:0x80131515)":"file:/ ...

  2. android webview加载网络连接

    webview = (WebView) findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); //设 ...

  3. UITableView加载网络数据的优化

    UITableView加载网络数据的优化 效果 源码 https://github.com/YouXianMing/Animations // // TableViewLoadDataControll ...

  4. Spring加载Hibernate 映射的几种方式及区别

    LocalSessionFactoryBean有好几个属性用来查找hibernate映射文件: mappingResources.mappingLocations.mappingDirectoryLo ...

  5. 解决 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 以及MyBatis批量加载xml映射文件的方式

    错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 的出现,意味着项目需要xml文件来 ...

  6. 使用CEfSharp之旅(1) 加载网络页面

    原文:使用CEfSharp之旅(1) 加载网络页面 版权声明:本文为博主原创文章,未经博主允许不得转载.可点击关注博主 ,不明白的进群191065815 我的群里问 https://blog.csdn ...

  7. 使用异步任务加载网络上json数据并加载到ListView中

    Android中使用网络访问来加载网上的内容,并将其解析出来加载到控件中,是一种很常见的操作.但是Android的UI线程(也就是主线程)中是不允许进行耗时操作的,因为耗时操作会阻塞主线程,影响用户体 ...

  8. android122 zhihuibeijing 新闻中心NewsCenterPager加载网络数据实现

    新闻中心NewsCenterPager.java package com.itheima.zhbj52.base.impl; import java.util.ArrayList; import an ...

  9. Universal-Image-Loader解析(三)——用ListView和ViewPager加载网络中的图片

           现在我们终于可以通过这个框架来实现ListView中加载图片了,至于ViewPager还是别的,原理其实都是一样的 一.ListView 1.布局文件 list_layout.xml & ...

随机推荐

  1. iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver

    IOS数据持久化的方式分为三种: 属性列表 (plist.NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等 归档(又名 ...

  2. java中的分支

    条件语句:     if-else选择结构:         if(条件块){             代码块1         }else{             代码块2         }   ...

  3. SqlServer数据文件增长也很快,到底是哪些表增长造成的呢?

    查询数据库中所有表的大小,哪些表的数据量较大 create table #t (name ), rows ), data ), index_size ), unused )) exec sp_MSfo ...

  4. C# WinForm开发系列 - ComboBox

    5.一个带CheckBox,分组,颜色标记等功能的下拉框  PowerComboBoxCSharp.rar 包含自动完成下拉框,字体下拉框,电脑盘符,多列下拉框,带CheckBox,树型下拉框等.代码 ...

  5. java数组操作

    @Bizlet("数据对象扩展运算逻辑")public class DataObjectExt { private DataObjectExt(){ //工具类不能实例化 } /* ...

  6. 【linux】linux如何进入单人维护模式修改root密码

  7. HTML5显示地图例子

    html 5获取GPS位置,Google地图显示 场景: JQuery Mobile 代码片段: <script type="text/javascript"> $(' ...

  8. JDBC的URL设置allowMultiQueries的原因

    如下的一个普通JDBC示例: String user ="root";String password = "root";String url = "j ...

  9. Python IDE Tools

    PyCharmhttps://www.jetbrains.com/pycharm/download/ Sublimehttp://www.sublimetext.com/

  10. Learning Puppet — Variables, Conditionals, and Facts

    Begin $my_variable = "A bunch of text" notify {$my_variable:} Yup, that’s a variable, all ...