尝试从网络位置加载程序集,这会导致程序集被沙箱化

时间:2013-08-02 11:55:53

标签: .net c#-4.0

.Net 4.0:获取错误“尝试从网络位置加载程序集,这会导致程序集被沙箱化” 应用设置

<loadFromRemoteSources enabled="true"/>

没有帮助。 我如何才能知道哪个组件导致问题? 我该如何解决?

4 个答案:

答案 0 :(得分:38)

我也遇到过这个问题,但我的问题发生了,因为文件已被阻止,因为它是从一个不安全的源代码下载的,在我的情况下是GMail。

解决了这个问题
  1. 右键单击有问题的文件
  2. 点击属性
  3. 点击取消屏蔽
  4. 在我的情况下,整个.zip文件是不安全的,所以我在解压缩之前解锁了该文件。

    有关此解决方案的更多信息herehere

答案 1 :(得分:2)

要查找有问题的程序集,请使用fuslogvw(Windows SDK的一部分,因此随每个Visual Studio一起安装)。

要解决此问题,您实际上必须将loadFromRemoteSources元素添加到应用程序配置文件中。您确定在&lt; runtime&gt;中添加了loadFromRemoteSources吗?元件?

或者,您可以升级到.NET 4.5,因为MSDN表示:

  

在.NET Framework 4.5中,默认情况下,本地网络共享上的程序集作为完全信任运行;您不必启用元素

答案 2 :(得分:0)

我已经看到过这里提到“网络位置”并且你在本地使用DLL(即不是远程) - 但它是从远程位置(例如互联网文件共享站点)复制的。

在这种情况下的技巧是我怀疑DLL由于流概念而被阻止,但是资源管理器UI属性对话框没有显示“解锁”按钮。

要解决这个问题,我使用了sysinternals工具“streams”(在这里找到:Streams download),如下所示:

streams <your dll> -> view stream
streams -d <your dll> -> delete the stream data on a file

如果你想要定位一组文件,还有一个带-r的递归选项。

我希望这可以帮助其他人 - 这很棘手,因为用户界面没有显示它被阻止,但显然是(可能是由于其他一些安全措施)。

此解决方案还意味着您无需调整loadFromRemoteSources标志,因为这是一个非常广泛的行程。

答案 3 :(得分:0)

如果任何人即使在解除阻止时仍遇到麻烦,请尝试此操作。

我的情况是,我在网络上共享一个文件夹,在其中放置了带有DLL文件的zip文件。从应该使用dll的服务器访问它。如果我从服务器解压缩了zip,则即使解除阻止也无法使用。对我有用的是在源计算机上解压缩zip,然后仅复制所有文件而不是zip文件。我不确定为什么会这样。

也许我的帐户比zip文件的来源更受信任。