繁体   English   中英

从IIS7打开SQL连接?

[英]Opening SQL Connection from IIS7?

我用Visual Studio 2008 sp1创建了一个ASP.NET网站,并在代码中使用SQL连接访问了SQL Server 2008中的数据库。这一切都很好,但是后来我想在IIS7(Windows 7)中部署该网站。发现该怎么做真是太难了-(我添加了一个虚拟目录并将其转换为应用程序,然后才向我显示将其复制到inetpub \\ wwwroot并将其转换为应用程序之前出现的错误)。 完成此操作后,我尝试从IIS7运行它,但它一直显示给我一个错误,该错误出现在命令sqlconnection.open()中,当我从Visual Studio运行网站时,该方法效果很好。 我该如何解决?

我正在使用以下连接字符串:“数据源EDI-PC \\ SQLEXPRESS;初始目录= SyncMaster;集成安全性= True”

而且我的IIS7与SQL Server位于同一台计算机上,那么我需要做些什么才能使其正常工作?

您的连接字符串可能看起来像这样...

<add name="ConnectionString" 
     connectionString="Data Source=servername;
                      Initial Catalog=dbname;
                      Integrated Security=True"
     providerName="System.Data.SqlClient" />

这意味着它使用IIS在NETWORK SERVICE下运行的Windows帐户进行连接。 当您从Visual Studio运行时,它使用您的Windows帐户,该帐户有权访问SQL Server。

创建一个sql用户用作服务帐户,并在连接字符串中指定该信息。 这样,它将尝试使用您在Visual Studio和IIS中创建的相同帐户进行连接。

即。

<add name="ConnectionString" 
     connectionString="Data Source=servername;
                       Initial Catalog=dbname;
                       Persist Security Info=True;
                       User ID=sqluser;
                       Password=sqruserpassword"
     providerName="System.Data.SqlClient" />

在IIS7(或其他任何IIS)中运行时,将以在iis中运行应用程序池的用户身份连接到sql server。 在IIS7中,这通常是网络服务。 因此,如果您使用集成安全性,则需要向该帐户授予对数据库的访问权限。 如果您的SQL Server实例在另一台计算机(例如SQLSERVER01)上运行,并且您的Web应用程序在您的计算机YOURMACHINE上运行,则该计算机上的NETWORK SERVICE帐户将被称为YOURMACHINE $,如SQLSERVER01所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM