首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ConnectionString属性尚未初始化IIS8.5

ConnectionString属性尚未初始化IIS8.5
EN

Stack Overflow用户
提问于 2018-12-19 01:33:04
回答 4查看 3.2K关注 0票数 2

我从一个朋友那里继承了一个网站来主持,因为他和现在为他主持这个网站的人闹翻了。

这是一个老网站,被托管是由looks of things托管的IIS7,我无法将其放到网上。

即时消息在装有IIS的服务器2012r2机器上

基本上,这是我得到的错误:

代码语言:javascript
运行
复制
The ConnectionString property has not been initialized.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The ConnectionString property has not been initialized.

Source Error:

Line 95: 
Line 96:             conOleDbConnection = New SqlConnection(ConfigurationManager.ConnectionStrings.Item("SQLClient").ConnectionString)
Line 97:             conOleDbConnection.Open()
Line 98: 
Line 99:             dadOleDbDataAdapter = New SqlDataAdapter(strSQL, conOleDbConnection)


Source File: C:\inetpub\wwwroot\abc\App_Code\SqlClient.vb    Line: 97

Stack Trace:

[InvalidOperationException: The ConnectionString property has not been initialized.]
   System.Data.SqlClient.SqlConnection.PermissionDemand() +7116997
   System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +30
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +312
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +202
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +413
   System.Data.SqlClient.SqlConnection.Open() +128
   BBS.SqlClient.DataHandler.GetDataTable(String strSQL) in C:\inetpub\wwwroot\abc\App_Code\SqlClient.vb:97
   BBS.SqlClient.DataHandler.GetDataRow(String strSQL) in C:\inetpub\wwwroot\abc\App_Code\SqlClient.vb:128
   BBS.Sql.AbstractEntity.LoadObjectByCol(String strColumnName, String strColumnValue) in C:\inetpub\wwwroot\abc\App_Code\AbstractEntity.vb:216
   _Default.Bind(String strWebPageURL) in C:\inetpub\wwwroot\abc\Default.aspx.vb:9
   _Default.Page_Load(Object s, EventArgs e) in C:\inetpub\wwwroot\abc\Default.aspx.vb:30
   System.Web.UI.Control.OnLoad(EventArgs e) +106
   System.Web.UI.Control.LoadRecursive() +68
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785

下面是堆栈跟踪文件的相关部分:

SQLCLIENT.VB行97

代码语言:javascript
运行
复制
Public Shared Function GetDataTable(ByVal strSQL As String) As DataTable
Dim conOleDbConnection As SqlConnection
Dim dadOleDbDataAdapter As SqlDataAdapter
Dim dstDataSet As New DataSet

conOleDbConnection = New SqlConnection(ConfigurationManager.ConnectionStrings.Item("SQLClient").ConnectionString)
conOleDbConnection.Open()

dadOleDbDataAdapter = New SqlDataAdapter(strSQL, conOleDbConnection)
dadOleDbDataAdapter.Fill(dstDataSet, "Data")

conOleDbConnection.Close()
conOleDbConnection = Nothing

Return dstDataSet.Tables("Data")
End Function

SQLCLIENT.VB线路128

代码语言:javascript
运行
复制
Public Shared Function GetDataRow(ByVal strSQL As String) As DataRow
Dim dtblGetDataRow As DataTable = GetDataTable(strSQL)

If dtblGetDataRow.Rows.Count = 1 Then Return dtblGetDataRow.Rows(0) Else Return Nothing
End Function

以下是提供的web.config中的连接字符串

代码语言:javascript
运行
复制
<connectionStrings>
<add connectionString="" name="SQLClient" />
</connectionStrings>

我已经将数据库放到了MSSQL服务器上

尝试添加新的连接字符串:

代码语言:javascript
运行
复制
<add name="MSSQL" connectionString="Data Source=abc;Initial Catalog=def Name;User id=geh;Password=ijk;Persist Security Info=true;Pooling=true" providerName="System.Data.SqlClient"/>

但是,它在所有种类的情况下都会出错。

有人能帮我把这个网站恢复在线吗?

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-12-19 02:31:55

您添加了一个新的连接字符串,但使用了不同的名称。配置文件中的名称必须与代码正在查找的名称("SQLClient")相匹配。

代码语言:javascript
运行
复制
<connectionStrings>
  <add connectionString="you need to put something here" name="SQLClient" />
</connectionStrings>

你可以去掉MSSQL。从中获取connectionString并将其放入SQLClient条目中。或者将MSSQL重命名为SQLClient并去掉多余的部分。

票数 0
EN

Stack Overflow用户

发布于 2018-12-19 03:16:03

连接字符串为空,已将连接从SQLClient重命名为MSSQL。

使用SSMS检查\$ (您的新IIS计算机名)是否具有登录权限以及数据库的用户映射。还要测试从DEV PC到MSSQL的连接。在VS中,使用服务器资源管理器连接到MSSQL PC和数据库。获取该数据连接的属性。连接字符串可以看起来像...

代码语言:javascript
运行
复制
Data Source=<sqlservername>;Initial Catalog=<database>;Integrated Security=True

...where,是不带引号的PC和数据库的名称。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 02:18:02

我想知道ConfigurationManager.ConnectionStrings.Item("SQLClient").ConnectionString是否真的返回了什么。通过查看您的代码,SQLClient没有太多内容。它应该看起来像这样。

代码语言:javascript
运行
复制
<connectionStrings>
<add name="SQLClient" connectionString="Data Source=abc;Initial Catalog=def Name;User id=geh;Password=ijk;Persist Security Info=true;Pooling=true" />
</connectionStrings>

我认为如果连接字符串实际上是错误的,你会得到一个不同的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53838287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档