Web Hosting上的MVC 3 ASPNETDB.MDF SqlExpress数据库连接字符串

时间:2011-07-21 21:53:18

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

我认为这更像是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数据库,所以我很无能为力(我确信这很明显)。

3 个答案:

答案 0 :(得分:2)

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

SQL Compact EditionSQLLite

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

显然,你没有完全成熟的数据库引擎的所有功能,但它们仍然非常强大。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

您可能需要关注此文章吗?

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

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

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

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

当您部署到托管服务器时(并且它对您可以使用或甚至不运行sqlexpress的DB数量有限制)都不会附加数据库。所以你需要为你的web.config文件(通常是Debug和Release)制作一个“转换文件”,这个文件基本上是另一个web.config,但只有配置行,你需要在将网站部署到托管时进行更改服务器

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