2011-01-20 167 views
0

以下過程中出現如下異常返回到我們的代碼:SQL Server的「登錄失敗,用戶不會記錄在錯誤日誌

m_cnn = new SqlConnection(); 
m_cnn.ConnectionString = sxCnn; 
m_cnn.Open(); 

---異常信息---

Exception: in OpenEx. 
Msg=OpenEx failed. 
Errors: Index #0 
Message: Login failed for user 'xyz'. 
LineNumber: 65536 
Source: .Net SqlClient Data Provider 
Procedure: 
Number: 18456 
State: 1 

我遇到的問題是,我無法在SQL錯誤日誌中查找此條目以查找狀態。例如,我們在今天上午11點43分看到這個例外情況,當我進入日誌時,那時沒有條目。

我們需要做什麼才能啓用此日誌記錄?我們在Security |下的數據庫屬性中選擇了'僅失敗登錄'選項登錄審覈。然而,我們沒有看到這個問題。

任何幫助,非常感謝。

+0

您正在使用Windows身份驗證還是混合使用?如果是Windows,請嘗試檢查Windows安全日誌。 – 2011-01-23 01:41:09

回答

0

這個問題是存在的,因爲兩個主要問題:

  1. 我們的網絡上有幾個開關是壞
  2. 我們正在併發連接的淫穢量數據庫

我們已經修復了1,問題的數量急劇減少。我們正在重寫從應用程序進行的連接(我實際上在嘗試執行修復時詢問了另一個問題here

0

您的連接字符串可能有問題。它不應該是代碼中的變量,它應該在你的web.config中設置並從那裏拉出。下面是我在web.config中:

<connectionStrings> 
    <add name="MyConnectionString" connectionString="Data Source=MYSQL1;Initial Catalog=MyDATABASE;User ID=dummyUser;Password=dummyPW" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

,這裏是我把它從代碼:

mcnn.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 

而且,如果有拼寫錯誤,或者如果你失去了一些東西,在連接字符串中,您將無法訪問數據庫以嘗試登錄.sql將無法記錄。可能值得雙重檢查^ _^

+0

連接字符串不是問題,因爲它工作99%的時間,並且連接字符串不會更改。此登錄失敗問題在我們的網絡上隨機發生。 – AboutDev 2011-01-20 20:20:23

+0

99%的時間,並隨機發生?它應該工作,或者不工作。我的猜測是你的程序沒有到達你的數據庫。 – 2011-01-20 20:22:43

0

登錄失敗的記錄由AuditLevel設置控制。

相關問題