2011-08-11 3 views
0

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) 자신의 대답의 관습에서

+0

자신의 질문에 대답하는 훌륭한 전통에서, 여기 내가 배운 것이 있습니다. 나는 System.Management 클래스를 사용하기 위해 코드를 수정했다. 아래 샘플 코드 : – user304582

답변

0

질문, 여기 내가 배운거야. 나는 System.Management 클래스를 사용하기 위해 코드를 수정했다. 아래 샘플 코드 :

ConnectionOptions connectionOptions = new ConnectionOptions();

connectionOptions.Authority = "ntlmdomain :"+ this.domain;

connectionOptions.Username = this.username; connectionOptions.Password = this.password;

connectionOptions.EnablePrivileges = true;

connectionOptions.Authentication = AuthenticationLevel.PacketPrivacy;

ManagementScope managementScope = 새 ManagementScope (@ "+ this.iisserver + @"\ root \ microsoftiisv2 ", connectionOptions);

managementScope.잇다();

관리 개체 appPool = 새 관리 개체 (managementScope, 새 관리 경로 ("IISApplicationPool.Name = 'W3SVC/AppPools /"+ apppool + "'"), null);

appPool.InvokeMethod ("Recycle", null, null);

관련 문제