1

アクティブ ディレクトリを呼び出すためのコードが 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 ...

サーバー スタック トレース: System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(_ BinaryParser 入力) で System.Runtime.Serialization.Formatters.Binary.System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() の _BinaryParser.ReadSerializationHeaderRecord() ) System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (ストリーム serializationStream、HeaderHandler ハンドラー、ブール fCheck、ブール isCrossAppDomain、IMethodCallMessage methodCallMessage) で System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryResponseMessage (ストリーム inputStream、IMethodCallMessage reqMsg、 System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage (IMessage msg) でブール値の bStrictBinding)

[0] で例外が再スローされました: Drive.Beagle の System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 タイプ) で System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) で。 Server.BeagleFacade.GetActiveDirectorySearchResults(MemberCategory memberType) at Drive.Beagle.Client.BeagleController.get_ActiveDirectoryUserCache() in C:\Development\ MyProject\ClientCtrlr\MyController.cs:line 68}

Active Directory 呼び出しがプリンシパル オブジェクトで機能することを理解しているので、それらはデフォルトではシリアル化できず、.net 予約オブジェクトであるためマークできません。しかし、この問題を取り除くために私は何をすべきですか?

System.DirectoryServices.AccountManagement;AD Get ユーザーとグループの呼び出しに名前空間を使用しています。

4

0 に答える 0