运行应用程序通过Windows Guest用户帐户连接到SQL Server

时间:2012-10-02 09:10:55

标签: .net windows sql-server-2008 clickonce

我有一个连接到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:拒绝访问“sqlserver的Global.net数据提供程序”路径。    在System.IO ._ Error.WinIOError(Int32 errorCode,String maybeFullPath)    在System.Threading.Mutex。<> c _DisplayClass3。< .ctor> b__0(对象userData)    在System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode代码,CleanupCode backoutCode,Object userData)    在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 lifetime)    在System.Diagnostics.SharedPerformanceCounter..ctor(String catName,String counterName,String instanceName,PerformanceCounterInstanceLifetime lifetime)    在System.Diagnostics.PerformanceCounter.Initialize()    在System.Diagnostics.PerformanceCounter.set_RawValue(Int64值)    at System.Data.ProviderBase.DbConnectionPoolCounters.Counter..ctor(String categoryName,String instanceName,String counterName,PerformanceCounterType counterType)    在System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String categoryName,String categoryHelp)    在System.Data.SqlClient.SqlPerformanceCounters..ctor()    在System.Data.SqlClient.SqlPerformanceCounters..cctor()    ---内部异常堆栈跟踪结束---    在System.Data.SqlClient.SqlConnectionFactory..ctor()    在System.Data.SqlClient.SqlConnectionFactory..cctor()    ---内部异常堆栈跟踪结束---    在System.Data.SqlClient.SqlConnection..cctor()

任何人都能告诉我如何解决这个问题吗? :)

1 个答案:

答案 0 :(得分:0)

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