1

在我的开发机器上工作时,我使用以下连接字符串:

<add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" />

这每次都有效。

但是,当我部署到作为专用主机的远程 IIS 服务器时(SQLEXPRESS应该可以正常工作而无需担心与共享服务器相关的问题),相同的连接字符串会导致无法连接到数据库。

数据库文件存储在App_Data开发环境和部署环境的应用程序目录中。我似乎无法连接到部署环境中的数据库(尽管文件就在那里)。

我是否需要让我的主机以某种方式给我一个用户名/密码,以便我可以将其添加到连接字符串中?还是我需要以其他方式更改我的连接字符串?

4

1 回答 1

1

我从来没有使用过 SQLExpress(当然不是生气),但请记住,一旦你在 IIS 上,你就在与调试时不同的帐户下运行。这将是 IIS 应用程序池配置为运行的帐户。因此,当您说要使用集成安全性来访问此数据库时,您需要对其进行配置以识别该特定帐户(例如,无论是哪个帐户NETWORK_SERVICE)。

在托管环境中,您最好只使用 SQL 身份验证,尽管这显然不太安全,因为您必须将密码存储在某个地方。而且您仍然必须更改数据库安全设置。

否则,如果您确实知道运行应用程序池的帐户,那么只需将数据库配置为接受来自它的连接即可。

于 2012-08-13T22:50:01.370 回答