我的Facade层中有代码来调用活动目录
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 ......
服务器堆栈跟踪:at System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(_ BinaryParser 输入) System.Runtime.Serialization.Formatters.Binary。 _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)at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流 serializationStream,HeaderHandler handler,Boolean fCheck,Boolean isCrossAppDomain,IMethodCallMessage methodCallMessage)at System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMessage(流 inputStream,IMethodCallMessage reqMsg,Boolean bStrictBinding)at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(即时聊天 MSG)
在[0]处重新抛出异常:at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天 reqMsg,IMessage retMsg)at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培; msgData,Int32类型)at Drive.Beagle.Server.BeagleFacade.GetActiveDirectorySearchResults(MemberCategory memberType)at Drive.Beagle.Client.BeagleController.get_ActiveDirectoryUserCache()in C:\ Development \ MyProject \ ClientCtrlr \ MyController.cs:第68行}
据我所知,活动目录调用与Principal Objects一起使用,我相信默认情况下它们不可序列化,我不能将它们标记为.net保留对象。但是我应该怎么做才能摆脱这个问题呢?
我正在使用System.DirectoryServices.AccountManagement;
命名空间进行AD获取用户和群组呼叫。