web.config中缺少SQL Server Express 2008连接字符串

时间:2012-08-31 16:04:57

标签: sql-server-2008

我的开发机器上运行了一个asp.net应用程序(Windows 7旗舰版,IIS 7.5和Visual Studio 2010专业版)。我还安装了SQL Server 2008 R2,当然还有安装了VS 2010 Pro的SQL Server Express 2008。

我运行了ASP.NET配置向导,为我的应用创建了一些用户和滚动。因此,在App_Data文件夹中创建了ASPNETDB.MDF数据库文件。

我现在面临的问题是我的应用程序的web.config中缺少上述SQL Server Express数据库的连接字符串,因为它是成员资格的元素。

但我的应用程序运行正常。我可以登录,注销等。劳斯莱斯也按预期工作。

(我还想指出我的应用程序还访问本地计算机上的SQL Server 2008 R2上的数据库,它也可以在生产服务器上执行相同的操作。)

我将我的应用程序上传到生产服务器,在那里创建了成员资格数据库(SQL Server 2008),转移了数据等等。然后,我在web.config文件中为该SQL Server数据库添加了一个连接字符串。但是,如果我尝试登录,则无法连接到SQL Server。错误如下: 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 找到指定的服务器/实例时出错)。

我认为(虽然我不确定)我的应用程序尝试访问远程主机上的SQL Server Express。这是因为连接字符串是嵌入其中的某个地方。

如果我说清楚,那么我的问题是: 如何配置连接字符串或在哪里找到它?因为它不在web.config中。

我是ASP.NET和SQL Server的新手。任何帮助将受到高度赞赏。 感谢。

这是web.config

<configuration>
<connectionStrings>
<add name="somename" connectionString="Data Source=remotehost;Initial Catalog=remotedb;User Id=username;Password=password"providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<customErrors mode="Off"></customErrors>
<roleManager enabled="true" />
<authentication mode="Forms" />
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
</system.web>
</configuration>

这就是我的web.config。

我为远程服务器添加了上面的连接字符串。

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案。 如果您是从头开始创建网站(在我的情况下),ASPDBNET.MDF的连接字符串通常不会出现在web.config中。

应用程序使用machine.config文件中定义的计算机范围的连接字符串。这被命名为“LocalSqlServer”。

默认情况下,此LocalSqlServer连接字符串通常以本地SQL Server Express为目标。

因此,它在使用完整SQL Server的远程主机上失败。

要将您的网站上传到远程服务器,需要在web.config中进行一些调整,以指向通常是SQL Server的新服务器。

为此,请在web.config文件中添加一个新的连接字符串,并将其命名为LocalSqlServer。除名称外,其他所有内容通常都是数据源,初始目录等。

要使它在远程主机上工作,请在打开connectionStrings元素之前添加一个clear元素。以下是远程SQL Server的连接字符串的外观。

<connectionStrings>
    <clear/>
    <add name="LocalSqlServer" connectionString="Data Source=remotehost;Initial Catalog=remoteDB;User Id=username;Password=password" providerName="System.Data.SqlClient" />
</connectionStrings>

你已经完成了。这是我从头开始创建的ASP.NET网站所做的。现在它的会员登录,注销,用户和滚动等都能正常运行。

感谢阅读。