System.DirectoryServices.DirectoryEntry.Invoke() 메서드를 사용하여 원격 IIS 서버에서 응용 프로그램 풀을 재생하려고하면 불만스러운 문제가 있습니다.DirectoryEntry.Invoke 메서드를 호출하는 가장 예외
기본 컨텍스트는 동일한 Windows 도메인에있는 두 개의 클라이언트 컴퓨터와 IIS 7.0 서버 컴퓨터 (Windows 2008 Server) 인 myServer입니다. 클라이언트 컴퓨터에서 코드를 실행하여 IIS 서버에서 AppPool을 재활용하고 싶습니다.
하여 DirectoryEntry하여 DirectoryEntry = 새하여 DirectoryEntry ("IIS : //이 myServer/W3SVC/AppPools/SomeAppPool", domainUserid, 비밀번호, AuthenticationTypes.Secure)
여기에 관련 코드입니다;
directoryEntry.Invoke ("Recycle", null);
하나의 클라이언트 컴퓨터에서 코드가 성공적으로 실행되지만 다른 클라이언트 컴퓨터에서는 코드가 가장과 관련하여 예외를 throw합니다 (아래 참조). 두 클라이언트 컴퓨터에서 동일한 도메인 사용자로 로그인했으며 코드에서 동일한 도메인 사용자 정보를 사용합니다.
서버 측 이벤트 뷰어 및 기타 로그를 검사하여 요청이 서버에서 처리되는 방식에 몇 가지 명백한 차이가 있는지 확인하고 성공하지 못하면서 상당한 양의 인터넷 검색을 수행했습니다.
누구에게 무엇을 검색할지 또는 어떤 진단을 실행할 수 있는지 (클라이언트 컴퓨터 또는 서버 컴퓨터에서)이 문제가 발생하는 이유를 파악할 수 있습니까?
도움 주셔서 감사합니다. 마틴
2011-08-10 22 : 35 : 39,478 [10] WARN - ActionRestartIIS : IIS System.Reflection.TargetInvocationException 예외 재시작 : 호출 대상에 의해 예외가 발생했습니다 (예외 : ). ---> System.Runtime.InteropServices.COMException (0x80070542) : 필요한 가장 수준이 제공되지 않았거나 이거나 제공된 가장 수준이 유효하지 않습니다. (HRESULT에서 예외 : 0x80070542) System.DirectoryServices.DirectoryEntry.Invoke에서 내부 예외 스택 추적 --- 의 --- 끝 (문자열 methodName로, 객체 []에 args) 자신의 대답의 관습에서
자신의 질문에 대답하는 훌륭한 전통에서, 여기 내가 배운 것이 있습니다. 나는 System.Management 클래스를 사용하기 위해 코드를 수정했다. 아래 샘플 코드 : – user304582