不允许从网络位置加载程序集

Sti*_*ijn 13 .net .net-assembly visual-studio .net-4.5 visual-studio-2012

我最近建立了一个新的Windows Server 2012 R2环境并安装了Visual Studio 2012.

现在我遇到了多个.NET 4.5项目的问题,我从我的旧服务器,Windows Server 2008机器迁移了.这从未发生在旧服务器上.

尝试从网络位置加载程序集时,我遇到以下问题:

尝试从网络位置加载程序集,这会导致程序集在以前版本的.NET Framework中被沙箱化.此版本的.NET Framework默认情况下不启用CAS策略,因此此负载可能很危险.如果此负载不是用于沙盒装配,请启用loadFromRemoteSources开关.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569.

看着 一些 其他 的问题,但他们没有提供一个可行的解决方案.

这是我到目前为止所尝试的:

  • 添加了devenv.config,XDesProc.exe.appx.configXDesProc.exe.configloadFromRemoteSources开关.
  • 检查组件是否被阻挡,而不是.
  • 尝试使用CasPol实用程序,即使这仅适用于.NET 4.0之前的项目.

一切都没有成功.

有没有其他解决方案来解决这个问题?

Sti*_*ijn 34

loadFromRemoteSources 开关添加到machine.config解决了这个问题.

MSDN

loadFromRemoteSources元素指定是否应授予来自远程源的程序集完全信任.

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

你可以在这里找到machine.config :

32位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config
Run Code Online (Sandbox Code Playgroud)

64位

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
Run Code Online (Sandbox Code Playgroud)

  • 添加到`machine.config`打破了nuget。添加到`app.config`工作正常。 (2认同)
  • 这不是一个有效且安全的答案。问题可能与从互联网下载的压缩文件有关,解决方案是像 @Piper 提到的那样简单地解锁 zip。 (2认同)

Pip*_*per 8

我遇到了同样的问题,当尝试在来自互联网的 ZIP 的本地驱动器上加载 DLL 时。解决方案是在其文件属性中解锁ZIP。最后,再次提取 DLL,现在它加载没有错误。无需更改machine.config。

  • 这对我有用,尽管我在提取的 DLL 而不是 zip 上获得了“解锁”选项。 (3认同)
  • 就我而言,问题是文件是从另一台计算机复制的,并且被 Windows“阻止”。使用此 powershell 命令解决了该问题:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/unblock-file?view=powershell-7.1 (2认同)

归档时间:

查看次数:

34027 次

最近记录:

8 年 前