进行Active Directory调用时序列化的例外情况

时间:2013-09-30 16:27:01

标签: c# exception serialization active-directory

我的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获取用户和群组呼叫。

0 个答案:

没有答案