【问题标题】:MVC 3 ASPNETDB.MDF SqlExpress Database Connection String on Web Hosting虚拟主机上的 MVC 3 ASPNETDB.MDF SqlExpress 数据库连接字符串
【发布时间】:2011-07-21 21:53:18
【问题描述】:

我认为这更像是 MVC 3 的连接字符串问题,提前抱歉。

我在 MVC 3 中创建了一个网站,其中包含在您注册新用户时创建的默认数据库。它在本地运行良好,但在我收到以下错误的虚拟主机上却不行:

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

默认的连接字符串是:

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

我应该使用明确的服务器 IP 地址指定连接字符串还是保留 .\SQLEXPRESS 命令?如果我需要指定用户名和密码,那么我应该使用什么?我以前从未使用过本地 SQLExpress 数据库,所以我一无所知(我确信这很明显)。

【问题讨论】:

  • 在您的虚拟主机上,数据库安装在哪里?它甚至安装了 SQL Express 吗?
  • 数据库在 App_Data 目录下。虚拟主机声明“支持 SQL Management Express”,但在控制面板中我看不到任何配置方式(我也不知道是否需要配置)。我正在等待他们的回复,但想知道这是否是一个简单的连接字符串问题。
  • 原来托管服务提供商不支持 SQL Server Express,所以无论如何我都需要创建一个标准的 SQL 数据库。感谢您的帮助。

标签: asp.net asp.net-mvc connection-string sql-server-express


【解决方案1】:

如果您不能使用 SQL Express,那么您可以考虑使用嵌入式 SQL 引擎:

SQL Compact EditionSQLLite

我从未使用过 SQL CE,但 SQLLite 只是一个 DLL。

显然,您不具备成熟数据库引擎的所有功能,但它们仍然非常强大。

【讨论】:

  • 很好的选择,谢谢。我没有做任何奇妙的事情,所以 SQLLite 应该是一个不错的解决方案。干杯。
【解决方案2】:

通常您需要使用具有特定 IP 地址、用户名、密码等的连接字符串。

您与谁一起托管?通常,.net 主机提供商会为您提供用于连接数据库的连接字符串。您可以复制并粘贴到您的 web.config 中。此外,当他们为您创建数据库时,他们通常会指定用户名、密码和数据库名称,因此您必须更改所有这些。

这是 Visual Studio 具有带有 xml 转换的 Web.config.debug 和 Web.config.Release。这样,当您发布到站点时,连接字符串会自动从本地连接字符串更改为生产环境中使用的连接字符串。

【讨论】:

    【解决方案3】:

    您可能需要关注这篇文章?

    http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs

    默认“.net”将应用程序服务安装到“AttachDBFilename=|DataDirectory|aspnetdb.mdf”

    然后您创建自己的数据库,现在您使用两个数据库来存储可能只是在一个数据库中的数据。

    如果您阅读了上面的文章,它将向您展示如何将所有内容组合到一个数据库中。

    当您部署到托管服务器时(并且它对您可以使用的数据库数量有限制,或者甚至不运行 sqlexpress)都没有附加数据库。因此,您需要为您的 web.config 文件(通常是调试和发布)创建一个“转换文件”,它基本上是另一个 web.config,但只有在将站点部署到主机时需要更改的配置行服务器。

    因此,您的托管服务提供商将为您提供服务器上连接字符串所需的详细信息。然后将其放入“web.config.release”文件中,当您编译和发布站点的“发布”版本时,您将获得一个包含正确连接字符串数据的 web.config 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多