Владетель
Зарегистрирован: 29 September 2002
Сообщения: 20481
Примеры кода: 12
|
RE: System.ComponentModel.Win32Exception: Access is denied |
13 April 2002 14:26 |
|
|
|
|
>Я попытался написать простейший web-сервис, который должен выдавать значение счетчика загрузки процессора:
>using System;
>using System.Collections;
>using System.ComponentModel;
>using System.Data;
>using System.Diagnostics;
>using System.Web;
>using System.Web.Services;
>...
>[WebMethod]
>public string getPTPConuter()
>{
>System.Diagnostics.PerformanceCounter myCounter1 = new System.Diagnostics.PerformanceCounter();
>myCounter1.CategoryName = "Processor";
>myCounter1.CounterName = "% Total Processor Time";
>myCounter1.InstanceName = "0";
>myCounter1.BeginInit();
>return myCounter1.NextValue().ToString();
>}
>...
>
>На вызов метода myCounter1.NextValue() получаю:
>"System.ComponentModel.Win32Exception: Access is denied"
>
>В чем тут дело?
>
Скорее всего дело в том, что веб сервис, как и любое другое ASP.NET приложение, работает под аккаунтом ASPNET. Прав у этого аккаунта маловато. Попробуй:
1. имперсонацию.
2. заменить в machine.config аккаунт, под которым работает ASP.NET (изменения произойдут для всех ASP.NET приложений на машине). Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
|
|