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

kri*_*wal 25 .net c#-4.0

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

<loadFromRemoteSources enabled="true"/>
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*mey 45

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

  1. 右键单击有问题的文件
  2. 单击属性
  3. 单击取消阻止

在我的情况下,整个.zip文件是不安全的,所以我在解压缩之前解锁了文件.

更多关于该解决方案在这里这里

  • 我是单独解锁文件.一旦我从ZIP中做到这一点,一切都很好.谢谢. (2认同)

小智 7

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

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

为了解决这个问题,我使用了 sysinternals 工具“流”(在这里找到:流下载),如下所示:

streams <your dll> -> view stream
streams -d <your dll> -> delete the stream data on a file
Run Code Online (Sandbox Code Playgroud)

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

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

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


vla*_*135 3

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

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

或者,您可以升级到 .NET 4.5,因为正如MSDN所说:

在 .NET Framework 4.5 中,本地网络共享上的程序集默认以完全信任方式运行;您不必启用该元素