Web Service权限问题
梅青松 2005-06-21 10:51:19 我在Web Service中使用了微软的Data Access Application Block组件访问数据库,
但是在部署后本机调用(通过http://localhost/webservice.asmx调用)时出现异常
System.Security.SecurityException: 不允许所请求的注册表访问权。
我看了Data Access Application Block的源码,
其中有写log的操作(其中有对注册表的操作),
EventLog eventlog = new EventLog(SR.LogName, SR.MachineName, SR.FailureLogSource);
eventlog.WriteEntry(message, EventLogger.FailureLogType);
Data Access Application Block的AssemblyInfo.cs有设置注册表访问权限
[assembly : RegistryPermission(SecurityAction.RequestMinimum)]
我将ASP.NET用户设为administrator,还是没有用
--异常:
System.TypeInitializationException: “Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataCommandFailedEvent”的类型初始值设定项引发异常。 ---> System.Security.SecurityException: 不允许所请求的注册表访问权。
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.CreateEventSource(String source, String logName, String machineName, Boolean useMutex)
at System.Diagnostics.EventLog.CreateEventSource(String source, String logName, String machineName)
at Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.PerformanceCounterInstances.ReportCounterFailure(String message)
at Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.PerformanceCounterInstances..ctor(String categoryName, String counterName, Boolean createNewInstance)
at Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.InstrumentedEvent.AddPerformanceCounter(String category, String[] counterNames, Boolean createNewInstance)
at Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.InstrumentedEvent.Initialize(String counterCategory, String[] counterNames, Boolean createNewInstance, String eventLogSource, EventLogIdentifier[] eventIds)
at Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.InstrumentedEvent..ctor(String counterCategory, String[] counterNames, Boolean createNewInstance)
at Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataServiceEvent..ctor(String[] counterNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataCommandFailedEvent..ctor(String[] counterNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataCommandFailedEvent..cctor()
--- 内部异常堆栈跟踪的结尾 ---
at Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataCommandFailedEvent.Fire(String commandText, String connectionString)
at Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataInstrumentationFacade.CommandFailed(String commandText, String connectionString)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String tableName)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command)
at BMSServer.AuthService.GetAuthorizationTicket(String userName, String password, String power)