2013-12-09 206 views
17

我看到了很多有關此錯誤的問題。但沒有一個與形式有關。我在本地測試後託管了我的應用程序服務器。我認爲它工作了幾分鐘,但我不確定,因爲我可能已經看了一會兒localhost標籤。然後它停止工作。當我在服務器上進行更改時,我可能已經改變了一些東西。「系統找不到指定的文件」

我檢查了我的連接字符串,並嘗試使用其他方式登錄到數據庫,它在線。所以,任何線索可能是錯的。我不認爲有可能sql服務器只響應來自應用程序的請求,並且如果您通過SSMS登錄則可用。

下面是我得到的錯誤。

Server Error in '/' Application.

The system cannot find the file specified

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.ComponentModel.Win32Exception: The system cannot find the file specified

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[Win32Exception (0x80004005): The system cannot find the file specified]

[SqlException (0x80131904): 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: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction) +5296071 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +558
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5308555
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +920
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +307
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +434
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +225
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +37
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions) +558
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions) +67
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1052
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +167
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 retry, DbConnectionOptions userOptions) +143
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) +83 System.Data.SqlClient.SqlConnection.Open() +96
System.Data.SqlClient.SqlProviderServices.UsingConnection(SqlConnection sqlConnection, Action
1 act) +79
System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(SqlConnection sqlConnection, Action`1 act) +384
System.Data.SqlClient.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +241
System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +26

[ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.]
System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +170
System.Web.Providers.ModelHelper.GetStorageMetadata(String providerName, DbConnection connection, String ssdl) +35
System.Web.Providers.ModelHelper.CreateMetadataWorkspace(String providerName, DbConnection connection, String csdl, String ssdl, String msl) +154
System.Web.Providers.ModelHelper.CreateEntityConnection(ConnectionStringSettings setting, String csdl, String ssdl, String msl) +109
System.Web.Providers.ModelHelper.CreateMembershipEntities(ConnectionStringSettings setting) +28
System.Web.Providers.DefaultMembershipProvider.GetPasswordWithFormat(String userName, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& format, String& salt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) +118
System.Web.Providers.DefaultMembershipProvider.CheckPassword(String userName, String password, Boolean updateLastActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +81
System.Web.Providers.DefaultMembershipProvider.ValidateUser(String username, String password) +105
System.Web.Security.Membership.ValidateUser(String username, String password) +26 Staff.Web.Account.Login.OnAuthenticate(Object sender, AuthenticateEventArgs e) in c:\Assembla\SVN\servicesdue\Staff.Web\Staff.Web\Account\Login.aspx.cs:28 System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +9449786 System.Web.UI.WebControls.Login.AttemptLogin() +119
System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +75 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +114
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +159
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18055

有人也有過這樣的錯誤,他們說,他們使用了錯誤的店來連接到數據庫,因此錯誤。我的代碼中只有一家商店。沒有其他。

更新:

我發現了這個問題。它與會員有關。有些東西與我的會員連接字符串不符。但我不知道是什麼。我的應用需要註冊才能啓用身份驗證。我只保留了默認設置。還在App_Data文件夾中發佈了mdf文件。 這裏有一個類似的問題:Deploying ASP.NET membership to Godaddy。但解決方案並不明確,答案已標出。我加入了 連接字符串和我看到的錯誤

The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.

所以,我應該怎麼辦?這個會員資格在當地是完美無缺的。

更新:

我也試過這是什麼人建議Godaddy ASP.NET membership database woes。我刪除了conn字符串,並添加了名稱「LocalSqlServer」,以使Godaddy快樂。然後我刪除並添加以下這個connectionStringName - DefaultProfileProvider,DefaultMembershipProvider,DefaultRoleProvider和DefaultSessionProvider。仍然得到相同的系統錯誤找不到指定的文件。

+0

web.config中的'defaultConnectionFactory'是什麼?我也可能有同樣的問題,我相信它與defaultConnectionFactory –

+0

我遇到了幾個問題,並解決了所有問題。不知道它是什麼,但它與defaultConnectionFactory沒有任何關係。我認爲這個錯誤是我在配置中擁有TrustedConnection = true的地方。 – strider

回答

21

與SQL Server建立連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。文字

一般發出這樣的涉及到以下任何需要被看:

  • 防火牆設置從Web服務器到數據庫服務器
  • 連接字符串錯誤
  • 啓用適當的協議管道/ tcp-ip

嘗試使用SQL管理服務器在安裝了sql server的系統上連接到sql server並從那裏工作。注意錯誤日誌中的信息。

+0

看來我不能在生產服務器上使用.mdf文件。 SQL服務器需要配置成員資格。我想這就是問題所在。 – strider

+0

標記爲答案,因爲這非常接近我的實際問題。 – strider

+0

@strider我們有類似的問題?你的案子有什麼問題? –

7

將我的項目發佈到物理服務器後出現相同的錯誤。當我在VS2013上編譯時,我的web應用程序在我的電腦上完美工作。當我在sql server manager上檢查連接字符串時,在服務器上的所有東西都可以正常工作。我也檢查過防火牆(我把它關掉了)。但仍然沒有工作。我遠程嘗試通過SQL管理器連接數據庫,使用完全相同的用戶名/密碼和實例名稱等與協議pipe/tcp,我看到一切正常工作。但是當我嘗試打開網站時,我收到了這個錯誤。有沒有人知道解決這個問題的第四個選擇?

注:我的應用程序:ASP.NET 4.5 (by VS2013),服務器:Windows 2008 R2 64bit,SQL:MS-SQL WEB 2012 SP1 另外其他Web應用程序在web瀏覽器的偉大工程,與他們在同一服務器上的數據庫。


1天的痛苦後,我發現我的問題的解決:

首先,我檢查了所有的日誌和其他細節,但我能找到什麼。突然我意識到這一點;當我嘗試使用直接連接到已發佈數據庫的連接字符串並通過VS2013在我的計算機上運行應用程序時,我看到它正在連接另一個數據庫文件。我查了本地目錄,然後找到它。 ASP.NET身份不會像我在web.config文件中寫的那樣使用我的連接字符串。並且因爲這個VS2013正在App_Data文件夾中創建或連接一個名爲「DefaultConnection.mdf」的新數據庫。然後我找到了解決方案,它在IdentityModel.cs

我改變了代碼如下:

public class ApplicationUser : IdentityUser 
{ 
} 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    //public ApplicationDbContext() : base("DefaultConnection") ---> this was original 
    public ApplicationDbContext() : base("<myConnectionStringNameInWebConfigFile>") //--> changed 
    { 
    } 
} 

所以,畢竟,我重新建造並發表我的項目,現在一切工作正常:)

+0

您是如何獲得替代連接字符串的?以某種方式從Azure門戶訪問?哪裏? –

+0

我一直在用我發佈的應用程序間歇性地收到這個錯誤。我檢查了ApplicationDbContext,它是不正確的。我做出了適當的修改,並且正確無誤。再次,它是間歇性的(我會假設它會與這樣的錯誤一致),但希望我不會再次得到這個錯誤。 謝謝 –

-1

最常見的原因可能是數據庫連接串。您必須更改連接字符串attachDBFile = | DataDirectory | file_name.mdf。 主機名可能存在問題,它可能是(local),localhost或。\ sqlexpress。

1

如果您在部署.Net MVC Web應用程序後在GoDaddy中遇到此錯誤,並且您的web.config絕對正確...右鍵單擊您的數據項目選擇設置並確保GoDaddy的連接字符串正確服務器在使用中

+0

謝謝,你的小評論幫助我很多 – Moshii

0

Server Error in '/' Application.

The system cannot find the file specified

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.ComponentModel.Win32Exception: The system cannot find the file specified

Source Error:

 { 
        SqlCommand cmd = new SqlCommand("select * from tblemployee",con); 
        con.Open(); 
        GridView1.DataSource = cmd.ExecuteReader(); 
        GridView1.DataBind(); 

Source File: d:\C# programs\kudvenkat\adobasics1\adobasics1\employeedata.aspx.cs Line: 23

如果你的錯誤是同樣喜歡mine..just做到這一點

右鍵單擊在SQLServer對象資源管理器的表,在那裏一般選擇左下角選擇屬性 是與服務器的連接塊和連接specification.in你的網絡配置爲datasource =。或本地選擇服務器在屬性中指定的名稱..

1

我有同樣的問題 - 對我來說,這是SQL Server內存不足。釋放一些內存解決了這個問題

+0

Yeap。這也適用於我。 – kord

0

我得到這個錯誤,當我啓動我的ASP.NET應用程序,在我的情況下,問題是SQL Server服務沒有運行。開始清理它。

0

啓動SQL Server代理,這應該解決您的問題

0

考慮到一個的LocalDB實例只用於在開發使用。 LocalDb不適用於生產服務器部署最終結果時。

我覺得你的連接字符串指向的LocalDB實例,你需要採取一定的措施,把它變成了SQL Server數據庫。這不僅僅是複製mdf文件的問題。它可能會有所不同,從一個託管公司到另一個,但通常情況下,您需要創建現有數據庫(.bak文件)的備份,然後將其恢復到託管公司的SQL Server。您應該問他們在哪裏可以找到有關將數據庫部署到生產環境的說明。

相關問題