gum*_*umo 3 c# security full-trust .net-4.0 wcf-binding
在网络驱动器上运行时,我们的C++解决方案(调用.NET 4.0程序集)存在一个奇怪的问题.该解决方案使用NetTcpBinding托管多个WCF服务,其中一个具有非默认绑定配置.在部分信任下,非默认的NetTcpBinding本身是不可能的(请参阅堆栈溢出问题WCF NetTcpBinding何时需要在客户端上完全信任?),但解决方案在完全受信任的网络驱动器下运行.这适用于几台不同的计算机(Windows Vista和Windows 7)但在一台计算机上失败(Windows Vista)并抛出异常,
为"system.serviceModel/bindings"创建配置节处理程序时发生错误:该程序集不允许部分信任的调用方.(K:\ Somepath\Testing.exe.Config第6行)
如果解决方案确实在该计算机上部分信任下运行,那么这个例外就完全可以了,但它确实在完全信任的情况下运行.即使我检查完全信任代码也是如此.
我们用其中一台计算机双重检查了互联网选项 - 没有差异.
所有DLL文件和EXE文件都是强名称.
更新:
网络驱动器在特定计算机上完全信任(caspol.exe
).
我们应该寻找什么?
如果您需要其他信息,请告诉我们.
更新2: 我们仍然有这个问题,现在甚至在一台计算机上(Windows 7).所以它似乎与操作系统无关.
它被称为代码访问安全性(CAS),它强制将所有不受信任的网络驱动器视为不受信任的网络代码.
本地代码具有完全信任,网络代码具有部分信任,Internet代码无信任.它只是一个.NET安全模型.您可以选择将网络驱动器指定为"可信"驱动器,方法是为其提供完全权限(搜索caspol.exe
完全信任网络驱动器)或将EXE文件复制到本地驱动器.
使用CASPOL完全信任网络共享可以帮助您.
或者在命令行上:
CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6300 次 |
最近记录: |