0

我有一个连接到我们的 SQL Server 2008 企业的应用程序。

我的配置文件包含:

name="patbase" connectionString="Data Source=pbsqlserver1;Initial Catalog=patentbase;Trusted_Connection=True;;Application Name=PatBase Images;" providerName="System.Data.SqlClient"

当我从我的电脑上测试它时,它可以工作。

当我将它发布到(内部)服务器时,我可以看到我的用户已经登录到了 asp.net,但是数据库访问给了我:

从数据库获取提供者信息时出错。这可能是由 Entity Framework 使用不正确的连接字符串引起的。检查内部异常以获取详细信息并确保连接字符串正确。

4

2 回答 2

1

您的连接字符串正在使用“受信任的连接”,这意味着在 SQL 登录尝试中使用了客户端进程/线程的身份。您说您的用户已登录到 ASP.NET 应用程序,但是您的应用程序运行在其中的应用程序池的标识是什么?

您没有说您的应用程序使用哪种身份验证,但我将假设 Windows 身份验证。如果您希望最终用户的帐户用于 SQL 登录,则需要为您的应用启用 ASP.NET 模拟。您可以在 IIS 管理器中的“身份验证”下执行此操作,或者在您的 web.config 中使用<identity impersonate="true" />

如果您不关心 SQL 登录尝试使用哪个身份,您可以为应用程序池的身份创建 SQL 登录。

于 2013-04-03T13:56:44.267 回答
0

尝试查看 SSPI 安全性是否有效

<connectionStrings>
<add name="patbase" connectionString="Data Source=pbsqlserver1;Initial Catalog=patentbase;Integrated Security=SSPI;;Application Name=PatBase Images" providerName="System.Data.SqlClient"/>
</connectionStrings>

或删除 ;;Application Name=PatBase 图像,如果这不起作用。

于 2013-04-03T13:52:18.697 回答