0

我有一个连接到 SQL Server 2008 数据库的 .NET Windows 应用程序,我正在通过网络使用单击一次技术将该应用程序部署在客户端机器上。

现在我在不同的用户权限下测试应用程序。

当我在管理员用户和标准用户(Windows XP 中的受限用户)上测试应用程序时。并且应用程序成功运行

当我在 Guest 用户帐户上测试应用程序时,我得到了以下 .NET SQL 异常:

The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception.
 9/26/2012 11:25:33 AM: Stack:    at System.Data.SqlClient.SqlConnection..ctor()
 at    
  System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Initialize
 (IData 
 Services dataServices, Object connection)
 at System.Data.Linq.DataContext.Init(Object connection, MappingSource mapping)
 at System.Data.Linq.DataContext..ctor(String fileOrServerOrConnection, MappingSource 
 mapping)

这是内部异常:

System.TypeInitializationException:“System.Data.SqlClient.SqlConnectionFactory”的类型初始化程序引发了异常。---> System.TypeInitializationException:“System.Data.SqlClient.SqlPerformanceCounters”的类型初始化程序引发了异常。---> System.UnauthorizedAccessException:对路径“Global.net data provider for sqlserver”的访问被拒绝。在 System.IO._ Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.Threading.Mutex.<>c_DisplayClass3.<.ctor>b__0(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.Mutex..ctor(Boolean initialOwned, String name, Boolean& createdNew, MutexSecurity mutexSecurity) 在 System.Diagnostics.SharedUtils.EnterMutexWithoutGlobal(String mutexName, Mutex& mutex) 在 System.Diagnostics.SharedPerformanceCounter.Verify(CategoryEntry* currentCategoryPointer) 在 System.Diagnostics.SharedPerformanceCounter.FindCategory(CategoryEntry** returnCategoryPointerReference) 在 System.Diagnostics。 SharedPerformanceCounter.GetCounter(String counterName, String instanceName, Boolean enableReuse, PerformanceCounterInstanceLifetime life) at System.Diagnostics.SharedPerformanceCounter..System.Diagnostics.PerformanceCounter.Initialize() 的 ctor(String catName, String counterName, String instanceName, PerformanceCounterInstanceLifetime 生命周期) System.Diagnostics.PerformanceCounter.set_RawValue(Int64 value) 在 System.Data.ProviderBase.DbConnectionPoolCounters.Counter..ctor( System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String categoryName, String categoryHelp) 处 System.Data.SqlClient.SqlPerformanceCounters..ctor() 处的 String categoryName、String instanceName、String counterName、PerformanceCounterType counterType)。 SqlPerformanceCounters..cctor() --- 内部异常堆栈跟踪结束 --- 在 System.Data.SqlClient.SqlConnectionFactory..ctor() 在 System.Data.SqlClient.SqlConnectionFactory..cctor() --- 内部结束异常堆栈跟踪 --- 在 System.Data.SqlClient。SqlConnection..cctor()

谁能告诉我如何解决这个问题?:)

4

1 回答 1

0

通过 SSMS 添加来宾(安全登录),然后将该帐户添加到特定数据库中的 Sercurity Accounts。

于 2012-10-02T13:41:54.557 回答