0

我正在將MVC應用程序移動到新的服務器。舊服務器是Windows 2003,新服務器是Windows 2012 R2。Windows身份驗證,ASP.Net MVC錯誤

應用程序使用Windows身份驗證,然後使用該用戶調用SQL Server來檢索數據。

的應用仍然在MVC 1.0,使用Visual Studio 2008

應用程序內置在Visual Studio本地運行正常。然後我將應用程序部署到IIS7.5。 現在,如果我使用遠程桌面連接到服務器,然後在服務器上運行瀏覽器,應用程序運行良好。

我遇到的問題是當我從網絡上的任何其他機器訪問網站。 最初,mvc應用程序加載並顯示ok。 但是當我點擊任何調用SQL數據庫的函數時,我都會看到一個windows登錄彈出框。

它看起來像憑證沒有被傳遞到SQL Server。

我不知道爲什麼我會得到這個登錄框,就像我說的,當我在visual studio中本地運行或本地直接在服務器上運行時,它不會發生。

即使出現此登錄框,並且輸入了我的登錄憑據,登錄也會失敗。 3次登錄嘗試後,應用程序池崩潰。

有沒有人有任何想法,爲什麼我得到這個登錄框?

謝謝

UPDATE:SQL Server是在另一個沒有改變的盒子上。

更新2:我剛剛發現,如果在IIS上的ASP.net模擬設置中設置我的Active Directory用戶標識和密碼,則應用程序可以在任何計算機上正常工作。

這是否意味着Windows身份驗證沒有獲取我的AD用戶標識並將其傳遞給SQL Server?

+0

聽起來像你需要啓用和使用Sql Server混合模式驗證:Windows Authnetication + Sql ... – Daniel 2014-12-02 20:50:53

+0

數據庫沒有改變,它在另一個盒子上。只有asp.net應用程序移動到一個新的框。就像我說的那樣,如果我在服務器上本地運行它,應用程序運行良好。 – Bill 2014-12-03 15:32:43

回答

0

您正在收到這種奇怪的行爲,因爲在您的服務器上運行Application Pool的用戶沒有足夠的權限。

該用戶需要具有NTFS權限。

如果將用戶更改爲Local System它肯定會起作用。但是這可能不會被您的安全規則所允許,因此您應該首先與IT經理覈實。

+0

沒有這樣做有什麼區別,就像我說的MVC應用程序工作正常,除非我調用一個頁面調用數據庫,它只發生在我不在本地運行。 – Bill 2014-12-03 15:37:14

+0

網站如何連接到數據庫? Windows驗證? – 2014-12-03 15:42:12

+0

見上面的更新2 – Bill 2014-12-03 16:26:09