1

我在 asp.net 中使用登录控制。此控件在 app_data 文件夹中创建一个 aspnetdb.mdf 文件,并且 Web 配置中没有任何代码用于连接到此数据库。在本地网络中工作正常,但是当 II 上的网络无法连接到 aspnetdb 时。如何通过 Web 配置管理与 aspnetdb 的连接?我在 web.config 中使用跟随 cod,但是当 aspnetdb 附加到 sqlserver 时,网络无法正常工作:

<add name="ApplicationServices"
         connectionString="data source=.\SQLMIRZA;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ASPNETDB.MDF;User Instance=true"
     providerName="System.Data.SqlClient" />
4

1 回答 1

1

一个观察结果是您mdf在连接字符串中给出了文件的完整路径。|DataDirectory|directory 自动指向该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" />-->

这里我已经注释掉了真实/网络连接字符串,所以它可以在本地机器上工作。在部署之前只需反转评论,它将在网络上运行。

于 2013-11-11T07:11:29.470 回答