我在我的开发机器(Windows 7 Ultimate、IIS 7.5 和 Visual Studio 2010 Pro)上运行了一个 asp.net 应用程序。我还安装了 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 的全部内容。
上面的连接字符串是我为远程服务器添加的。