我真的希望你能在这个问题上帮助我。我已经阅读了一些论坛和一些关于连接问题的 stackoverflow 主题,并使用了他们的建议。有人说只是在连接前面添加服务器名称,它适用于那个特定的人,也适用于我的本地连接,但远程不是那么多,或者只是启用“允许 sql server 上的远程连接”也这样做(已经启用)但仍然没有帮助。所以这是我的问题:
我在本地机器上创建了一个 asp.net mvc 3 网站,并且在开始连接到远程 sql 服务器时遇到问题,所以我也在本地机器上创建了基本数据库。我在该数据库上运行了 aspnet_regsql.exe,创建了所有表。然后我去了我的 web.config 并添加了带有我的服务器名称的连接字符串:
<add name="DefaultConnection" connectionString="data source= [***]\SQLSERVER;integrated security = true ;Initial Catalog=[dbname];" providerName="System.Data.SqlClient" />
我还在 web.config 中添加了以下内容:
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="DefaultConnection" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
现在,这一切都对我在本地开发和测试我的应用程序有用。一切正常,创建用户将它们添加到数据库中。
现在我想上线,我需要在实时数据库上创建一个新数据库。我已经完成了上述所有步骤。唯一改变的是,我的连接字符串现在位于我们的远程 sql 服务器 ip 上。(我也允许远程连接)。
<add name="DefaultConnection" connectionString="data source=[ip address];integrated security = true ;Initial Catalog=aspnetdb;" providerName="System.Data.SqlClient" />
我在 webconfig 中仍然有上述所有成员标签。
但是当我转到 ASP.Net 网站管理工具时仍然出现以下错误:无法建立与数据库的连接。如果您尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql命令行实用程序创建和配置数据库,然后返回此工具设置提供程序。(我已经运行了 aspnet_regsql)
所有帮助将不胜感激谢谢!