事件代碼: 3005
事件消息: 發生了未處理的異常。
事件時間: 2012-11-28 10:18:28
事件時間(UTC): 2012-11-28 2:18:28
事件 ID: 9c4465338d4b44ee8af5cc37a5b69d8e
事件序列: 346
事件匹配項: 1
事件詳細信息代碼: 0
應用程序信息:
應用程序域: /LM/W3SVC/1004365944/Root/wwwPrograms-1-129985415291718750
信任級別: Full
應用程序虛擬路徑: /wwwPrograms
應用程序路徑: D:\Web\wwwPrograms\
計算機名: JIN14XUEXIAO
進程信息:
進程 ID: 3308
進程名: w3wp.exe
帳戶名: NT AUTHORITY\NETWORK SERVICE
異常信息:
異常類型: SqlException
異常消息: 在建立與服務器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: TCP 提供程序, error: 0 - 由於目標機器積極拒絕,無法連接。)
請求信息:
請求 URL: http://www.45it.com
請求路徑: /wwwPrograms/Bbsdy.aspx
用戶主機地址: 124.115.0.139
用戶:
是否已經過身份驗證: False
身份驗證類型:
線程帳戶名: NT AUTHORITY\NETWORK SERVICE
線程信息:
線程 ID: 18
線程帳戶名: NT AUTHORITY\NETWORK SERVICE
是否正在模擬: False
堆棧跟蹤: 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 _Bbsdy.Page_Load(Object sender, EventArgs e) 位置 d:\Web\wwwPrograms\Bbsdy.aspx.cs:行號 79
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
自定義事件詳細信息:
有關更多信息,請參閱在 http://go.microsoft.com/fwlink/events.asp 的幫助和支持
解決辦法:就是在IIS應用程序配置中,對該擴展名映射設置勾選“確認文件是否存在”,就不再收到這樣的異常信息。估計是IIS和應用處理404錯誤的先後問題,用戶訪問首先經過IIS請求相關頁面,如果沒有設置“確認文件是否存在”,則IIS不做判斷,直接交給應用程序進行解釋,但是訪問的這個文件並不存在,也沒有設置相關的解釋規則,於是引起應用程序異常,並把異常信息寫入到事件記錄中。比如配置偽靜態的.html映射,那個html文件是不存在的,需要應用程序進行解釋執行,在本例中,擴展名就是.asmx。暫時還不清楚是如何訪問了能引起這個異常,至少我在浏覽器中輸入那個不存在的訪問地址,不會引起事件記錄。
解決方法:開始->所有程序->Ms Sql Server->配置工具->sql server外圍應用配置器->服務和連接的外圍應用配置器->打開MSSQLSERVER節點下的Database Engine 節點,先擇"遠程連接",接下建議選擇"同時使用TCP/IP和named pipes",確定後,重啟數據庫服務就可以了.