我在asp.net中使用登录控件。此控件在app_data文件夹中创建aspnetdb.mdf文件,并且Web配置中没有任何代码用于连接到此db。在本地Web工作正常,但当II上的Web无法连接到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" />
答案 0 :(得分:1)
一个观察是您在连接字符串中提供mdf
文件的完整路径。 |DataDirectory|
目录自动指向App_Date
文件夹。所以不需要提供mdf
文件的完整物理路径。这也应该有用 -
<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" />-->
这里我已经注释掉了真实/网络连接字符串,因此它可以在本地机器上运行。 在部署之前,只需反转注释,它就可以在网络上运行。