시간 간격을두고 프로그래밍 방식으로 응용 프로그램 풀을 재활용하려고합니다. 나는 아래에 지정된 두 가지 방법을 사용하여 그것을 시도했다. HRESULT에서 예외를 throw하는 Pool.Recycle() : 0x80070005 (E_ACCESSDENIED)
1)
public static void RecycleAppPools()
{
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection appPools = serverManager.ApplicationPools;
foreach (ApplicationPool ap in appPools)
{
//if(ap.Name== System.Security.Principal.WindowsIdentity.GetCurrent().Name)
ap.Recycle();
}
}
는
의 위 던지고 예외
2) private static void RecycleApplicationPool(string appPoolId)
{
string appPoolPath = "IIS://localhost/W3SVC/AppPools/" + appPoolId;
var appPool = new DirectoryEntry(appPoolPath);
// DirectoryEntry appPoolEntry = new DirectoryEntry(appPoolPath);
appPool.Invoke("Recycle", null);
}
이 위의 방법은 예외를 던지고있다 "알 수없는 오류 (0x80005000)함께 System.Runtime.InteropServices.COMException" "액세스가 거부되었습니다." 나를 위해 아무 것도 작동하지 않습니다.
는 I 2015 프레임 워크 4.6.1과을 표현하는 비주얼 스튜디오에 Microsoft.Web.Administration을 참조하고 작업 주어진 누구나 할 수 있다면 도와주세요 IIS 버전은 10.0.14393.0
입니다했다. 미리 감사드립니다.
당신이 AppPool을 재활용하고 싶은 시나리오에 게시하시기 바랍니다 수 :이 문서에 따라 권한을 가진 사용자의 응용 프로그램 풀을 실행하는 사용자를 위임 할 경우
그러나 이 작업을 수행 할 수 있습니다? – programtreasures
이것을 확인하셨습니까? https://stackoverflow.com/questions/249927/restarting-recycling-an-application-pool. 관리 모드에서 코드를 실행해야 할 수도 있습니다. –
@SouvikGhosh 예 링크를 시도했지만 여전히 예외가 발생했습니다 "applicationPool.Recycle();" Exception from HRESULT : 0x80070005 (E_ACCESSDENIED) " –