Linq忽略连接字符串,并尝试访问错误的数据库。抛出异常
我对DBML文件使用Linq,我相信这是Linq2SQL 在开发过程中,我使用了一个名为“Stage”的staging数据库,现在使用的是另一个数据库。我对临时数据库的权限已被删除 当我使用以下连接字符串时Linq忽略连接字符串,并尝试访问错误的数据库。抛出异常,linq,exception,linq-to-sql,Linq,Exception,Linq To Sql,我对DBML文件使用Linq,我相信这是Linq2SQL 在开发过程中,我使用了一个名为“Stage”的staging数据库,现在使用的是另一个数据库。我对临时数据库的权限已被删除 当我使用以下连接字符串时 <add name="Management_Report_Emailer.Properties.Settings.DWConnectionString" connectionString="Data Source=biqasql01;Initial Catal
<add name="Management_Report_Emailer.Properties.Settings.DWConnectionString"
connectionString="Data Source=biqasql01;Initial Catalog=DW;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
我的一些linq查询有效,一些则无效。不起作用的会抛出此异常
Error The server principal "mydomain\myusername" is not able to access the
database "DWStage" under the current security context.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception
, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm
dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds
ParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, Run
Behavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBe
havior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult
result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, S
tring method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behav
ior)
at System.Data.Common.DbCommand.ExecuteReader()
at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo
queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs
, ICompiledSubQuery[] subQueries, Object lastResult)
at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryI
nfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompile
dSubQuery[] subQueries)
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider
.Execute(Expression query)
at System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.Get
Enumerator()
at Management_Report_Emailer.Program.Main(String[] args) in C:\dev\Management
ReportMail\Management Report Emailer\Program.cs:line 181
错误服务器主体“mydomain\myusername”无法访问
当前安全上下文下的数据库“DWStage”。
位于System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolea
断开连接)
位于System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常
,布尔断开连接)
位于System.Data.SqlClient.TdsParser.throweexception和warning()处
在System.Data.SqlClient.TdsParser.Run(RunBehavior,SqlCommand-cm
dHandler、SqlDataReader数据流、BulkCopySimpleResultSet bulkCopyHandler、Tds
ParserStateObjectStateObj)
位于System.Data.SqlClient.SqlDataReader.ConsumerMetadata()处
在System.Data.SqlClient.SqlDataReader.get_MetaData()处
在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,运行
行为(运行行为,字符串重置选项字符串)
位于System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBe
havior、RunBehavior、布尔返回流、布尔异步)
位于System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior、运行行为、布尔返回流、字符串方法、DbAsyncResult
结果)
位于System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior、运行行为、布尔返回流、字符串方法)
位于System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior,S
字符串法)
在System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior)中
ior)
在System.Data.Common.DbCommand.ExecuteReader()中
在System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询,QueryInfo
queryInfo,IObjectReaderFactory工厂,对象[]父参数,对象[]用户参数
,ICompiledSubQuery[]子查询,对象lastResult)
位于System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询,QueryI
nfo[]QueryInfo,IObjectReaderFactory工厂,对象[]用户参数,ICompile
dSubQuery[]子查询)
位于System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider
.Execute(表达式查询)
位于System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable.Get
枚举器()
在C:\dev\Management中的Management\u Report\u Emailer.Program.Main(字符串[]args)处
ReportMail\Management Report Emailer\Program.cs:第181行
问题
为什么它试图访问错误的数据库“DWStage”???在这个应用程序中,我将代码减少到只有四行,没有一行引用该字符串。我对该字符串进行了文件搜索,但在任何地方都找不到它。正确答案是:检查您的视图
我正在引用视图中使用另一个数据库中的表,我的帐户无权访问该表。SQL正确地报告我无法查看另一个表。正确的答案是:检查您的视图
我正在引用视图中使用另一个数据库中的表,我的帐户无权访问该表。SQL正确地报告我无法查看另一个表。您的DataAccess代码是否驻留在另一个项目中?所有内容都在同一个项目中。我进入应用程序,在异常之前几乎没有运行任何东西。我正在使用F11单步执行,并且不使用任何古怪的设置程序…您是否使用
*
过滤器搜索解决方案中的所有文件?打开在文件中搜索
,选择解决方案路径,然后点击搜索,也许你会看到不同的结果。我使用了AgentRack,一个积极的文件搜索工具,它还没有让我失望(即使是二进制文件)。可能字符串在某个地方被uuencoded..您的DataAccess代码是否驻留在另一个项目中?所有内容都在同一个项目中。我进入应用程序,在异常之前几乎没有运行任何东西。我正在使用F11单步执行,并且不使用任何古怪的设置程序…您是否使用*
过滤器搜索解决方案中的所有文件?打开在文件中搜索
,选择解决方案路径,然后点击搜索,也许你会看到不同的结果。我使用了AgentRack,一个积极的文件搜索工具,它还没有让我失望(即使是二进制文件)。可能字符串在某个地方被UU编码。。
Error The server principal "mydomain\myusername" is not able to access the
database "DWStage" under the current security context.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception
, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm
dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds
ParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, Run
Behavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBe
havior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult
result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, S
tring method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behav
ior)
at System.Data.Common.DbCommand.ExecuteReader()
at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo
queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs
, ICompiledSubQuery[] subQueries, Object lastResult)
at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryI
nfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompile
dSubQuery[] subQueries)
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider
.Execute(Expression query)
at System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.Get
Enumerator()
at Management_Report_Emailer.Program.Main(String[] args) in C:\dev\Management
ReportMail\Management Report Emailer\Program.cs:line 181