Requested registry access is not allowed(要求されたレジストリアクセスは許可されません)
2641 ワード
Requested registry access is not allowed(要求されたレジストリアクセスは許可されません)
今日、サービスプログラムを書いているときにこの問題に遭遇しました.自分のXPの本でテストOKしたので、windows server 2003サーバーに配備してこの問題が発生しました.権限管理の問題だと思います.
問題は次のようにEventLogを作成するコードにあります.
public void LogEvent(String Message, EventLogEntryType type)
string source = "DemoSource";
if (!EventLog.SourceExists(source))
EventLog.CreateEventSource(source, "DemoLog");
_log.Source = source;
}
VSデバッグを使っていたので、やはり管理者権限で走ってみたかったのですが(i.e.Run as administrator)、結果はやはり素晴らしく、スムーズにパスできました.
そして谷兄に行ってSearchに行きます.
EventLog.CreateEventSource()は、通常のユーザーとしてコンピュータにログインし、Microsoft Visual Studioを使用しようとする.NETはカスタムイベントログを作成してイベントを登録するが、An unhandled exception of type'System.Security.SecurityException' occurred in mscorlib.dll Additional information:Requested registry access is not allowed. この問題は、ログインに使用するユーザーアカウントに十分な権限がないためです.最初にEventLogを呼び出す.CreateEventSource()メソッドでカスタムイベントログを作成すると、次のレジストリサブアイテムの下にカスタムイベントログエントリが作成されます:HKEY_LOCAL_MACHINESYSTEMCurrentControl SetServicesEventlogこのサブエントリを作成するには、書き込み権限が必要です.ただし、一般ユーザーアカウントには書き込み権限がありません.したがって、「症状」セクションでエラーメッセージが表示されます.警告:レジストリエディタまたは他の方法でレジストリが誤って変更された場合、深刻な問題が発生する可能性があります.これらの問題は、OSを再インストールして解決する必要がある場合があります.Microsoftはこれらの問題を解決できるとは保証できません.レジストリを変更するには、リスクを負う必要があります.この問題を解決するには、次のいずれかの方法を使用します.
カスタムイベントログの作成権限の付与
管理者としてカスタムイベントログをインストール
問題は明らかで、イベントログがレジストリにある場所も見つかりました.次回は不要なテストログを直接削除することができます.