我在asp.net中使用登录控件。该控件在app_data文件夹中创建了一个aspnetdb.mdf文件,并且web配置中没有任何用于连接到此数据库的代码。在本地web中正常工作,但当web上的IIs无法连接到aspnetdb时。如何通过web配置管理到aspnetdb的连接?我在web.config中使用follow cod,但当aspnetdb连接到sqlserver时,web不工作:
<add name="ApplicationServices"
connectionString="data source=.SQLMIRZA;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ASPNETDB.MDF;User Instance=true"
providerName="System.Data.SqlClient" />
一个观察结果是,您在连接字符串中给出了mdf
文件的完整路径。|DataDirectory|
目录自动指向App_Date
文件夹。因此不需要给出CCD_ 4文件的完整物理路径。这也应该起作用-
<add name="ApplicationServices"
connectionString="data source=.SQLMIRZA;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ASPNETDB.MDF;User Instance=true"
providerName="System.Data.SqlClient" />
要直接连接到mdf
文件,您需要在机器上安装SQLEXPRESS
。检查您的web服务器是否安装了SQLEXPRESS
实例。
如果将文件附加到MSSQLSERVER
实例。那么你的连接字符串应该改成这样的东西-
<add name="ApplicationServices"
connectionString="data source=(local);Initial Catalog=ASPNETDB;Integrated Security=SSPI;User Instance=true" providerName="System.Data.SqlClient" />
如果这个连接字符串在您的本地机器上不起作用,那么您可以将两者都保留在web.config
中,并注释掉其中一个。像这样的东西-
<!-- LOCAL -->
<add name="ApplicationServices"
connectionString="data source=.SQLMIRZA;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ASPNETDB.MDF;User Instance=true"
providerName="System.Data.SqlClient" />
<!--REAL-->
<!--<add name="ApplicationServices"
connectionString="data source=.SQLMIRZA;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ASPNETDB.MDF;User Instance=true"
providerName="System.Data.SqlClient" />-->
在这里,我已经注释掉了真实的/web连接字符串,所以它将在本地机器上工作。在部署之前,只需反转注释,它就可以在web上工作。