[英]Web App to SQL Server Not Connecting ( Error Locating Server/Instance Specified)
[英]SQL Server Error After Web Deploy of App to Separate Web Server
将应用程序移至Prem上其自己的Windows 2012 R2 IIS Web服务器后,出现以下错误。 SQL 2014数据库服务器在Azure中。 防火墙已禁用。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26-指定服务器/实例时出错)
进一步:
连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。 提供者尝试自动创建应用程序服务数据库,因为提供者确定该数据库不存在。
我的连接字符串不指定任何本地SQL Express数据库:
<connectionStrings>
<remove name ="NewUserToolContext"/>
<remove name ="DefaultConnection"/>
<add name="NewUserToolContext" connectionString="Data Source=SQLDBSERVERNAME;Initial Catalog=NewUserTool;Integrated Security=False;User Id = USERID;password = PASSWORD" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=SQLDBSERVERNAME;Initial Catalog=NewUserTool;Integrated Security=False;User Id = USERID;password = PASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>
我的_Layout部分视图具有一些代码,这些代码在显示特定菜单项之前检查角色成员身份。 经过大量搜索之后,我发现了2012年的旧帖子和2013年的一篇关于某种成员初始化程序的帖子。 该帖子令人难以置信的模糊和混乱,似乎并不相关。 它也没有解释该怎么做,尤其是2017年的MVC 6 Entity Framework。我尝试过,我找不到他们在说什么。 我从去年开始使用MVC 6学习ASP.NET。
首先,您是否在VM的防火墙中启用了1433端口? 如果否,则可以使用以下步骤打开此端口。
其次,您还需要在Network Security Group中启用与您的VM相关的1433端口。 以下步骤供您参考。
编辑2017/6/13
首先,我建议您在服务器上使用连接字符串之前将其写入日志文件。 您会发现是否使用正确的连接字符串来连接服务器。 也许连接字符串被其他配置覆盖。
此外,您的Web服务器是否托管在Azure VM或本地计算机上?
也请尝试在您的应用程序池高级设置中启用32位应用程序。
您可以尝试其他一些方法。
请检查您是否在web.config中配置了动态IP安全性或ipSecurity。 它将根据您的配置阻止任何IP地址。
在部署发行版时,您是否尝试过删除测试服务器上的所有原始文件?
最终发现它使用的不是我在web.config
提供的正确连接字符串,而是使用了machine.config
的LocalSqlServer
连接字符串后,我很快意识到它正在使用它,因为它在AspNetSqlMembershipProvider
和AspNetSqlProfileProvider
被引用和machine.config中的角色提供程序部分。 我必须查找/替换所有引用LocalSqlServer
,并将其替换为我想使用的连接名称DefaultConnection
。 然后,我必须在Visual Studio命令提示符下的开发人员计算机上运行aspnet_regsql.exe
,并将其指向数据库以创建架构。 之后,我的应用程序开始工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.