【问题标题】:Request for the permission failed from a desktop app running on a network drive从网络驱动器上运行的桌面应用程序请求权限失败
【发布时间】:2012-11-28 23:40:15
【问题描述】:

从 .NET 4 桌面应用程序打开 WCF 客户端时会引发以下异常。这似乎只发生在我们的一个客户端安装中:

Request for the permission of type 'System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

有谁知道如何解决这个问题?

【问题讨论】:

标签: c# wcf exception permissions code-access-security


【解决方案1】:

有趣的是,有人从 CruiseControl 遇到同样问题的另一个(未答复的)SO:.Net 4 CAS - Request for the permission of type 'System.Net.WebPermission, System, Version=4.0.0.0, Action: Demand。这有可能最终成为骗局;但目前这是不公平的,因为尚未得到答复。

这似乎类似于 3.5 sp1 之前的网络安全问题,从网络位置运行的应用程序将通过 CAS 被拒绝许多权限。

我认为这篇博文可能会提供解决方案,但如果可执行文件本身是从远程位置加载的,它可能不适用(查看第一个解决方案)http://www.damirscorner.com/CodeAccessSecurityStrikesBackInNET4.aspx

虽然,同时查看Exploring the .Net Framework 4 Security Model(它提供与上述博客文章相同的解决方法)它可能不适用,因为这意味着从网络位置运行的非托管 Exes 应该默认运行完全受信任 - 显然你的不!

如果这不起作用,可以尝试的一件事是使 exe(以及它的所有引用)具有强名称。

【讨论】:

  • 谢谢安德拉斯 - 我会看看。 exe和dll文件都是强命名的。
【解决方案2】:

阅读了 Andras 的回答并检查了我们提供给客户的其他一些应用程序后,app.config 文件中的以下代码似乎可以对问题进行排序(因为它存在于我们的其他应用程序中,但不是一个我们遇到问题的人):

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

【讨论】:

  • 这是否为您解决了问题?我也有类似的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
相关资源
最近更新 更多