我有一个带有代码的 WCF 服务:
var ctx = new PrincipalContext(IsLocalMachine(strDomain) ? ContextType.Machine : ContextType.Domain);
Principal principal = Principal.FindByIdentity(ctx, name)
我有 3 个不同的测试环境:
1:IIS 8.5 .NET v4.5 应用程序池,Win 8.1, strDomain = "testdomen1"
name = "testdomen1\testuser"
-环境没有错误。
2:IIS 7.5 .NET v4.5 应用程序池,Win Server 2008 r2,strDomain = "testdomen1", name = "testdomen1\testuser"
--环境没有错误。
3:IIS 8.5 .NET v4.5 应用程序池,Win 8, strDomain = "testdomen2"
name = "testdomen2\testuser2"
-环境有错误。在线上
Principal principal = Principal.FindByIdentity(ctx, name)
argument exception
Value was invalid.
Parameter name: sddlForm
StackTrace
at System.Security.Principal.SecurityIdentifier..ctor(String sddlForm)
如果我对这一行使用 Debug>BreakPoint 并使用“Add Watch”或“Quick Watch”,我会得到一个结果。但是按F10后,我得到了错误。
可能是什么原因?