Я хочу, чтобы добавить в приложение приложение IIS 6 в приложение, используя asp.net C#.C# Recycle Ошибка пула приложений IIS 6
protected void Page_Load(object sender, EventArgs e)
{
//Recycle IIS 6's App Pool
Recycle("localhost", "appPool_02");
}
void Recycle(string machine, string appPoolName)
{
string path = "IIS://" + machine + "/W3SVC/AppPools/" + appPoolName;
DirectoryEntry w3svc = new DirectoryEntry(path);
w3svc.Invoke("Recycle", null);
}
"appPool_02" - другое имя пула приложений, а приведенный выше код работает на "appPool_01".
Когда я использовал код выше, произошла ошибка:.
拒绝 访问 (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) Описание: Необработанное исключение при выполнении текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.UnauthorizedAccessException:. 拒绝 访问 (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
ASP.NET не авторизован для доступа к запрошенному ресурсу. Рассмотрите возможность предоставления прав доступа ресурсу к идентификатору запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET на IIS 5 или Network Service на IIS 6), который используется, если приложение не выдаёт себя за другое. Если приложение выдаст себя, идентификатор будет анонимным пользователем (обычно IUSR_MACHINENAME) или пользователем, прошедшим проверку подлинности.
Чтобы предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в Проводнике, выберите «Свойства» и выберите вкладку «Безопасность». Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу. Выделите учетную запись ASP.NET и установите флажки для нужного доступа.
Источник ошибки:
Line 72: string path = "IIS://" + machine + "/W3SVC/AppPools/" + appPoolName;
Line 73: DirectoryEntry w3svc = new DirectoryEntry(path);
Line 74: w3svc.Invoke("Recycle", null);
Line 75: }
Line 76:
Исходный файл: E: \ iProject \ iProgress \ iProgress \ Т \ T.aspx.cs Линия: 74
Трассировка стека:
[UnauthorizedAccessException:拒绝 访问. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))]
[TargetInvocationException: Исключение было выбрано целью вызова.] System.DirectoryServices.DirectoryEntry.Invoke (String methodName, Object [] args) +238 WE_T.Recycle (String machine, String appPoolName) в e: \ iProject \ iProgress \ iProgress \ T \ T.aspx.cs: 74 WE_T.Page_Load (отправитель объекта, EventArgs e) в e: \ iProject \ iProgress \ iProgress \ T \ T.aspx.cs: 38 System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs e) +35 System.Web.UI.Control.OnLoad (EventArgs e) +99 System.Web.UI.Control.LoadRecursive () +50 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Что такое полная трасса исключения? –
«RPC-сервер недоступен» выглядит так: ... хост IIS не найден. –