【问题标题】:Load assembly from network location从网络位置加载程序集
【发布时间】:2011-03-16 16:18:05
【问题描述】:

我正在尝试通过以下方式加载程序集:

Assembly component = Assembly.LoadFrom(componentPath);

其中componentPath是网络位置的完整路径并得到以下错误:

尝试从网络位置加载程序集,这会导致程序集在以前版本的 .NET Framework 中被沙盒化。
此版本的 .NET Framework 默认情况下不启用 CAS 策略,因此这种加载可能很危险。

如果此加载不打算对程序集进行沙箱化,请启用 loadFromRemoteSources 开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569

你能解释一下我应该怎么做才能避免这个安全检查吗?

谢谢

【问题讨论】:

    标签: .net c#-4.0 assemblies


    【解决方案1】:

    我遇到了同样的问题。原因是程序集文件被 Windows 阻止了。我通过右键单击程序集文件并选择属性来解决它。在属性对话框中,单击常规选项卡下的取消阻止按钮,然后单击应用,然后单击确定

    参考:http://blogs.msdn.com/b/drew/archive/2009/12/24/xunit-and-td-net-fixing-the-attempt-was-made-to-load-an-assembly-from-a-network-location-problem.aspx

    【讨论】:

    • 很好的发现。我总是忘记检查这个!
    【解决方案2】:

    除了Furqan Safdar's answer,另一种选择是在配置文件中添加这个标签:

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

    希望这些链接能有所帮助:

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

    【讨论】:

      【解决方案3】:

      阅读Best Practices for Assembly Loading 了解一下。
      另请阅读此msdn .NET 安全博客

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多