随机误差 500 "The ConnectionString property has not been initialized"



自从我们的网站在2010年7月上线以来,我一直在使用相同的ConnectionString,并且从未遇到任何连接和与我们的数据库交互的问题。
然而,自2011年7月以来,我一直得到随机的"ConnectionString属性尚未初始化"错误。

  • 这个bug是怎么发生的?

我们的网站在可变时间段内运行良好(从几个小时到几个星期,尽管我注意到今天它是几个小时),这意味着数据库查询工作良好,人们可以登录等。然后,在某个时候,connectionString错误就发生了。
从这一刻起,我们的网站变得不可访问,并不断返回这个错误,无论我们试图访问的页面。
有时,在10-15分钟后,我们的网站自己重新上线,并运行良好,直到错误再次弹出。但大多数情况下,我必须使用以下3种方法之一才能使其再次工作:

1)再次保存Web配置文件,不添加/更改任何内容
2)在IIS中停止和启动站点
3)重启服务器

我们的服务器上也有开发站点。然而,它从来没有给我这个随机错误。我们的开发站点和生产站点之间的唯一区别是Web配置中不同的数据库,sql用户和认证模式(生产= Windows,开发= forms)

  • 自2010年7月以来,我们的服务器有什么变化?

.net框架在2011年3月从3.5升级到4。自2011年6月以来,站点物理目录已从原始IIS目录移动到同一服务器上的另一个分区(基本上,只是剪切/粘贴站点目录和更改IIS中的应用程序物理路径)。
Windows Server 2008的更新应用于每次有一些。

  • 我试图解决这个问题吗?

1)第一件事,我试着把我们的网站目录放到IIS inetpub/wwwroot。这并没有改变什么。
2)我尝试在我们的生产站点上设置与开发站点相同的目录权限。还没有。
3)我比较了两个应用程序池开发/生产,但没有任何区别。
4)当然,我也在很多网站上搜索过,看看是否有人也遇到过这个问题。我发现与我的问题最相关的话题是这个:
网络。配置- ConnectionString属性未初始化
然而,我不明白如何检查"在我的web根文件夹中随机应用的权限"。

  • 错误发生时主页上的堆栈跟踪:
at System.Data.SqlClient.SqlConnection.PermissionDemand()  
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)  
at System.Data.SqlClient.SqlConnection.Open()  
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)  
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)  
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)  
at Database.listeCategories(enuTypeCategorie typeCategorie, enuOrdre ordre, enuActif actif, Boolean withFirstRow, Boolean libTous)  
at user_controls_criteresAnnonce.set_secteur(Int32 value)  
at user_controls_criteresAnnonce.initValues()  
at _default.Page_Load(Object sender, EventArgs a)  
at System.Web.UI.Control.LoadRecursive()  
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)  

由于错误涉及弹出的任何页面,因此源总是不同的。

  • 系统信息:

站点(开发和生产)运行在Windows Server 2008 SP2和IIS 7上。
数据库运行在SQL Server 2005下。. net框架是4 (ASP版本编写的服务器管理器:ASP。净4.0.30319.0)。

ConnectionString以以下模式存储在Web配置文件中:

<connectionStrings>
    <add name="BosstobossDbBase" connectionString="Server=server_ip; Database=database_name; User=login; password=pass" providerName="System.Data.SqlClient"/>
</connectionStrings>  

在任何数据库连接尝试之前,connectionString被影响为SqlConnection对象,如下所示(conn在类中声明):

conn = New SqlConnection()
conn.ConnectionString = ConfigurationManager.ConnectionStrings("BosstobossDbBase").ConnectionString  
conn.Open()  
如果你需要进一步的信息,请尽管问我。我对这个有点茫然……我们很乐意接受任何帮助。
谢谢你!

最诚挚的问候,凯文

我会改变网络。

 <connectionStrings> 
     <remove name="BosstobossDbBase" />
     <add name="BosstobossDbBase" connectionString="Server=server_ip; Database=database_name;User=login; password=pass" providerName="System.Data.SqlClient"/> 
 </connectionStrings> 

长期以来,我一直面临着同样的问题。我有一个关于ASP的应用。Net v2.0,一直正常工作,突然有一天我开始得到这个错误。

我用下面的方法解决了这个问题:

打开inetmgr并单击主服务器。在Features视图中,单击ConnectionStrings。在我的例子中,有两个连接字符串被所有应用程序继承。结果发现其中一个字符串无效,当我删除它时,一切都恢复正常。

那台机器上的一个用户不久前添加了那个字符串,导致所有的应用程序都崩溃了。

相关内容

最新更新