我的开发机器上运行了一个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。
我为远程服务器添加了上面的连接字符串。
答案 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网站所做的。现在它的会员登录,注销,用户和滚动等都能正常运行。
感谢阅读。