4

У меня странная проблема с System.DirectoryServices, которая появляется прерывисто.Исключение Intermittant в System.DirectoryServices

Исключение ниже получает периодически брошено в коде ниже

private PrincipalSearchResult<Principal> GetAuthorizationGroups(UserPrincipal userPrincipal, int tries) 
    { 
     try 
     { 
      //Exception is thrown on this line below 
      return userPrincipal.GetAuthorizationGroups(); 
     } 
     catch (AppDomainUnloadedException ex) 
     { 
      if (tries > 5) 
      { 
       throw; 
      } 
      tries += 1; 
      Thread.Sleep(5000); 
      return GetAuthorizationGroups(userPrincipal, tries); 
     } 
     catch (Exception ex) 
     { 
      throw; 
     } 
    } 

Исключение StackTrace в System.Reflection.RuntimeAssembly._nLoad (AssemblyName FileName, струнного CodeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, Boolean throwOnFileNotFound , Boolean forIntrospection, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.LoadWithPartialNameInternal (AssemblyName an, Evidence securityEvidence, StackCrawlMark & stackMark) в System.DirectoryServices.AccountManagement.UnsafeNativeMethods.IADsPathname.Retrieve (Int32 lnFormatType) в System.DirectoryS ervices.AccountManagement.ADStoreCtx.LoadDomainInfo() в System.DirectoryServices.AccountManagement.ADStoreCtx.get_DnsDomainName() в System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemberOfAZ (высший р) в System.DirectoryServices.AccountManagement.UserPrincipal.GetAuthorizationGroupsHelper()

Что-то очень странное - это Exception.Message, которое есть: Не удалось загрузить файл или сборку «MyCustomAssembly.XmlSerializers» или одну из его зависимостей. Система не может найти указанный файл

Самое забавное, что MyCustomAssembly даже не упоминается в этой сборке.

Я думаю, что Exception.Message не соответствует информации Debug, а фактическая Stacktrace является более или менее правильным Исключением.

Любая идея, почему это происходит?

+0

Это нормально. Отладка + Исключения, отмените брошенный блок для исключений CLR. –

+0

Возможный дубликат [FileNotFoundException в ApplicationSettingsBase] (http://stackoverflow.com/questions/3494886/filenotfoundexception-in-applicationsettingsbase) –

+0

Вы хотите сказать, что я должен просто поймать и проигнорировать это исключение? – Fox

ответ

4

Я знаю, что вы давно это задали, но у меня была эта проблема и я решил ее, перейдя через мой менеджер конфигурации сборки и убедившись, что все проекты нацелены на один и тот же процессор - у меня было 2 здания для «Любой процессор »и тестовое приложение Windows Forms, построенное в направлении x86. Я изменил это на любой CPU, и проблема исчезла.

Got наконечник от here

0

Это недавно случилось с нами, когда мы обновили сервер в .NET 4.5 рамках (Мы сталкивались FileNotFoundException и NotSupportedException). Наше решение предназначалось для .NET 4, поэтому я считаю, что может возникнуть проблема с обратной совместимостью, когда .NET 4.5 пытается запустить приложение .NET 4 и подключиться к Active Directory.

Переключение решения на цель 4.5 и повторная публикация на сервере, похоже, сделали трюк.

Ниже приведено, как достичь этого.

Убедитесь, что все проекты в вашей цели решения 4.5:

правой кнопкой мыши на вашем проекте ->Properties ->Application Tab

enter image description here

Также убедитесь, что IIS использует правильную рамочное версию (В время публикации, он должен быть нацелен на 4.0.):