2012-09-15 45 views
0

我有一個應用程序,它使用SQL Server Express 2008中的linq-to-sql。當我在單獨的DAL項目中使用DBML文件並將它引用到我的Web項目,在執行SQL服務器顯示了這個錯誤:Asp.Net與SQL Server和Asp.net Linq應用程序

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

但是,當我在我的web項目中使用DBML,調試是沒有任何問題。但在IIS在64位Windows 7我得到:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

做這兩個錯誤有相同的原因是什麼?連接字符串不正確?

回答

1

我懷疑在第一種情況下,您在DAL項目中有連接字符串,而不是在您的Web項目中(它所屬的)。確保將其複製到您的Web項目的web.config

在第二種情況下,我認爲承載IIS的計算機嘗試連接到自己機器上的數據庫。如果是這樣,請檢查異常情況:確保您的SQL Express實例配置爲允許遠程連接,啓用IP協議(如果是本地流量,則命名爲管道),並確保您的計算機可供IIS機器訪問。

+0

你的意思是,當我從應用程序讀取dbml文件時,從主web項目的dbml句柄?! connecttion字符串位於DAL項目的app.config中。 其他問題:...並且您的機器可以通過IIS機器訪問......這是怎麼回事? –

+1

正在運行的應用程序(您的Web項目)的配置文件是在運行時讀取的文件。這就是連接字符串應該在的地方。第二個問題:檢查你是否可以在IIS機器的瀏覽器中「查看」你的機器。然後檢查您的Web應用程序在IIS中運行的帳戶是否對您的數據庫擁有足夠的權限。 –

0

我想,你的連接字符串是錯誤的。

別擔心。

檢查你的dbml的designer.cs文件。其中你會發現'<YourDBMLFile>DataContext()'構造函數。

並更改您的連接字符串。確保你的connectionstring是正確的。

相關問題