LINQ to SQL只能在调试模式下工作

本文关键字:调试 模式 工作 to SQL LINQ | 更新日期: 2023-09-27 18:29:37

这是我的代码:

DataClassesDataContext data = new DataClassesDataContext();
var hey = from p in data.Provas
          select p;
Response.Write(hey.First().title_it);

如果将此播放开始打开到Visual Studio,它将打开http://localhost:51180/Website1/然后我从DB中获取值。

但是,如果我打开网站http://localhost:8080/(通常我用这个打开)我得到:

System.Data.SqlClient.SqlException: Cannot open database "Website1" requested by the login. The login failed.

用户"IIS APPPOOL''Website1"登录失败。

我应该如何设置?IIS问题?

LINQ to SQL只能在调试模式下工作

正如@usr所指出的,答案就在你面前。

当您在调试模式下从Visual Studio运行应用程序时,连接到数据库的用户就是登录到PC并运行Visual Studio的用户——奇怪的是,这个用户(您!)是管理员,并且拥有SQL Server的管理员权限(我假设是本地实例)。

当您通过IIS的本地安装运行应用程序时(可以合理地假设它是完整版本,而不是express),除非您更改应用程序的应用程序池,否则它将以本地系统用户的身份运行(现在我忘记了是哪一个,您可以去查看应用程序池),默认情况下,用户将无法访问SQL Server中的数据库。

要解决此问题,您需要执行以下两项操作之一:a) 将应用程序池中的用户更改为对SQL Server中的数据库具有权限的用户(如果您想要良好的做法,则应定义明确的用户)b) 授予适当的系统帐户访问数据库的适当权限

(请注意,在这两种情况下,您都需要使用Management Studio或等效工具将用户添加到SQL Server)

验证http://localhost:8080/.这篇文章可能会对你有所帮助。