为什么连接字符串在生产asp.net中不起作用?

时间:2018-04-06 07:40:39

标签: sql-server web-config connection-string

我正在尝试将我的应用程序与服务器上的数据库连接以进行生产,但是它会抛出这样的错误:

  

错误:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

web.config中,我有用于开发的连接字符串,但是当我将其更改为生产时,它无法正常工作。这是我做的:

<connectionStrings>
  <add name="Vulosjet"
       connectionString="Data Source=IP;Initial Catalog=Vulosjet;Integrated Security=false;User ID=********;Password=********" />
  <add name="Vulosjet_app.Properties.Settings.VulosjetConnectionString"
       connectionString="Data Source=IP;Initial Catalog=Vulosjet;Integrated Security=false;User ID=********;Password=********"
       providerName="System.Data.SqlClient" />
</connectionStrings>

请帮忙吗?

2 个答案:

答案 0 :(得分:3)

您在Vulosjet连接字符串中缺少providerName。

仅使用一个连接名称,您可以通过部署方法更改内容。可以将其视为具有不同值的变量,具体取决于它的部署位置。阅读&#34; web.config转换&#34;看看你是如何实现这一目标的。

其次,确保您可以从生产环境访问数据库服务器。

整理出这些东西,你就会好起来。

答案 1 :(得分:0)

有很多可能的原因:

  • Sql Server实例名称不同(不是默认的MSSQLSERVER) - 您需要在服务器名称中指定它,例如10.10.42.53/SQLProd或其他
  • 在Prod服务器上为SQL配置了哪些协议?如果要以这种方式连接,则可能需要启用TCP / IP ...
  • 存在防火墙问题,无论是Prod中的SQL服务器上的软件还是两者之间的网络中的某个软件。
  • 存在一个基本的网络问题 - PROD Web服务器没有与PROD SQL服务器通信的直接路由。

这还不是(还)是一个身份验证问题。它只是看不到服务器/实例