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

3
我认为这更多是连接字符串的问题,而不是MVC 3的问题,所以提前很抱歉。
我已经在MVC 3中创建了一个网站,并使用注册新用户时创建的默认数据库。它在本地工作得很好,但在我的Web托管上却无法正常工作,出现以下错误:
“在建立到SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。请验证实例名称是否正确,并且SQL Server已配置为允许远程连接。(提供程序: SQL Network Interfaces, 错误: 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数据库,所以我一无所知(我相信这一点显而易见)。


1
在您的 Web 托管上,数据库安装在哪里?它是否已安装 SQL Express? - BonyT
数据库位于App_Data目录中。Web托管状态为“支持SQL Management Express”,但是从控制面板中我无法看到任何配置方式(也不知道是否需要配置)。我正在等待他们的回复,但想知道是否只是一个简单的连接字符串问题。 - pfeds
事实证明,托管提供商不支持SQL Server Express,因此我仍然需要创建一个标准的SQL数据库。感谢您的帮助。 - pfeds
3个回答

2
如果您无法使用SQL Express,则可以考虑使用嵌入式SQL引擎:

SQL Compact EditionSQLLite

。我从未使用过SQL CE,但是SQLLite只是一个单独的DLL文件。显然,您没有完整数据库引擎的所有功能,但它们仍然非常强大。

非常好的替代方案,谢谢。我没有做任何神奇的事情,所以SQLLite应该是一个不错的解决方案。干杯。 - pfeds

1
通常,您需要使用特定的IP地址、用户名、密码等连接字符串。
您的托管服务提供商是谁?一般来说,.NET主机提供商会给您提供连接字符串以连接到您的数据库。您可以将其复制并粘贴到您的Web.config文件中。此外,当他们为您创建数据库时,他们通常会指定用户名、密码和数据库名称,因此您需要更改所有这些信息。
Visual Studio有Web.config.debug和Web.config.Release与XML转换。这样,当您发布到网站时,连接字符串会自动从本地连接字符串更改为生产环境中使用的连接字符串。

1

您可能需要阅读这篇文章?

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文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接