gpt4 book ai didi

c# - .NET 程序集在网络驱动器上以部分信任的方式运行,但所有其他程序集以完全信任的方式运行

转载 作者:行者123 更新时间:2023-11-30 14:40:54 24 4
gpt4 key购买 nike

在网络驱动器上运行时,我们的 C++ 解决方案(调用 .NET 4.0 程序集)出现了一个奇怪的问题。该解决方案使用 NetTcpBinding 托管多个 WCF 服务,其中一个具有非默认绑定(bind)配置。在部分信任下,非默认 NetTcpBinding 本身是不可能的(请参阅 Stack Overflow 问题 When does WCF NetTcpBinding need full trust on the client? ),但该解决方案在完全信任的网络驱动器下运行。这确实适用于多台不同的计算机(Windows Vista 和 Windows 7),但在一台(Windows Vista)上失败并抛出异常,

An error occurred creating the configuration section handler for "system.serviceModel/bindings": That assembly does not allow partially trusted callers. (K:\Somepath\Testing.exe.Config line 6)

如果解决方案确实在该计算机上的部分信任下运行,但它确实在完全信任下运行,则此异常完全没问题。即使我检查是否完全信任代码也是如此。

我们用它运行的其中一台计算机仔细检查了 Internet 选项 - 没有差异。

所有的 DLL 文件和 EXE 文件都是强命名的。

更新:网络驱动器在特定计算机上处​​于完全信任状态 (caspol.exe)。

我们应该寻找什么?

如果您需要更多信息,请告诉我。

更新 2:我们仍然有这个问题,现在甚至在一台计算机上更多(Windows 7)。所以它似乎与操作系统无关。

最佳答案

它叫做 code access security (CAS),它强制将所有不受信任的网络驱动器视为不受信任的网络代码。

本地代码完全信任,网络代码部分信任,互联网代码不信任。它是一个仅限 .NET 的安全模型。您的选择是通过授予网络驱动器完全权限(搜索 caspol.exe 完全信任网络驱动器)将网络驱动器指定为“受信任”驱动器,或者将 EXE 文件复制到本地驱动器。

Using CASPOL to Fully Trust a Network Share 应该可以帮助您。

或者在命令行上:

CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .

关于c# - .NET 程序集在网络驱动器上以部分信任的方式运行,但所有其他程序集以完全信任的方式运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com