2

C# の Active Directory クラスに関して問題があります。プログラムのある時点で、次のコマンドを使用して、ユーザーがログインしている現在のドメインを取得しようとしています。

Domain.GetCurrentDomain();

ほとんどの場合、それは機能します。しかし、ワイヤレス ラップトップから実行すると、次のエラーが表示されます。

System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException: The server is not operational.

    Name: "DOMAIN.ca"
     ---> System.Runtime.InteropServices.COMException: The server is not operational.

       at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
       at System.DirectoryServices.DirectoryEntry.Bind()
       at System.DirectoryServices.DirectoryEntry.get_AdsObject()
       at System.DirectoryServices.PropertyValueCollection.PopulateList()
   at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
   at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
   at System.DirectoryServices.ActiveDirectory.PropertyManager.GetPropertyValue(DirectoryContext context, DirectoryEntry directoryEntry, String propertyName)
   --- End of inner exception stack trace ---
   at System.DirectoryServices.ActiveDirectory.PropertyManager.GetPropertyValue(DirectoryContext context, DirectoryEntry directoryEntry, String propertyName)
   at System.DirectoryServices.ActiveDirectory.Domain.GetDomain(DirectoryContext context)
   at System.DirectoryServices.ActiveDirectory.Domain.GetCurrentDomain()
   at ADT.ADTools.ComputerIsInDomain()

私の特定のケースでは、このコードは、実行されているコンピューターに関係なく、またはコンピューターがワイヤレス接続または有線接続を使用してドメインに接続されているかどうかに関係なく、Active Directory アカウントにログインしているすべてのアカウントで機能するはずです。

その問題に対する答え、またはそれを機能させるために私ができる回避策を知っている人はいますか?

4

1 に答える 1

0

問題を解決しました。問題の原因は、当社のビジネス ネットワークの内部にありました。私はいくつかのことをしました:

  • メイン ルーターに、AD DNS サーバーを指す 3 番目の DNS アドレスを設定します。
  • ワイヤレス ネットワーク カードで、優先 DNS サーバーとして AD DNS サーバーの IP を設定し、代替 DNS サーバーとしてメイン ルーターの IP を設定します。
于 2013-05-14T18:54:30.260 に答える