我的门面层中有代码可以调用活动目录
activeDirectoryUserCache = new MyFacade()
.GetActiveDirectorySearchResults(MyEnum.MemberCategory.User);
这个调用在我的本地机器上运行良好。但是,当将其部署到 DEV 服务器时,它会引发以下异常。
{System.Runtime.Serialization.SerializationException:输入流不是有效的二进制格式。起始内容(以字节为单位)为:53-79-73-74-65-6D-2E-49-4F-2E-46-69-6C-65-4E-6F-74 ...
服务器堆栈跟踪:位于 System.Runtime.Serialization.Formatters.Binary 的 System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(_ BinaryParser input)。_BinaryParser.ReadSerializationHeaderRecord() 在 System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() 在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage ) 在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 在 System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMessage(Stream inputStream, IMethodCallMessage reqMsg,布尔 bStrictBinding) 在 System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
[0] 处重新抛出异常:Drive.Beagle 处 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 处的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 Server.BeagleFacade.GetActiveDirectorySearchResults(MemberCategory memberType) 在 Drive.Beagle.Client.BeagleController.get_ActiveDirectoryUserCache() 在 C:\Development\ MyProject\ClientCtrlr\MyController.cs:line 68}
据我了解,活动目录调用适用于主体对象,我相信默认情况下它们不可序列化,我无法将它们标记为.net 保留对象。但是我应该怎么做才能摆脱这个问题?
我正在System.DirectoryServices.AccountManagement;
为 AD Get 用户和组调用使用命名空间。