【问题标题】:"The system cannot find the file specified"“该系统找不到指定的文件”
【发布时间】:2013-12-26 02:51:55
【问题描述】:

我看到很多关于 SO 的问题都带有这个错误。但没有一个与形式有关。我只是在本地测试后托管了我的应用程序服务器。我认为它工作了几分钟,但我不确定,因为我可能已经看了一会儿 localhost 选项卡。然后它停止工作。当我也在服务器上进行更改时,我可能已经更改了一些内容。

我检查了我的连接字符串,并尝试使用其他方式登录数据库,它是在线的。所以,任何线索可能是错误的。我认为 sql server 不可能只是不响应来自应用程序的请求,并且如果您通过 SSMS 登录则可用。

以下是我得到的错误。

“/”应用程序中的服务器错误。

系统找不到指定的文件

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.ComponentModel.Win32Exception:系统 找不到指定的文件

来源错误:

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[Win32Exception (0x80004005): 系统找不到文件 指定]

[SqlException (0x80131904): 网络相关或实例特定 建立与 SQL Server 的连接时出错。这 服务器未找到或无法访问。验证实例 名称正确且 SQL Server 配置为允许远程 连接。 (提供者:SQL 网络接口,错误:52 - 无法 找到本地数据库运行时安装。验证 SQL Server Express 已正确安装并且本地数据库运行时 功能已启用。)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection,Action1 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 重试,DbConnectionOptions 用户选项,DbConnectionInternal& 连接)+78
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +167
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 重试, DbConnectionOptions userOptions) +143
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 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 连接)+241
System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection 连接)+26

[ProviderIncompatibleException: 提供者没有返回 ProviderManifestToken 字符串。]
System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection 连接)+170
System.Web.Providers.ModelHelper.GetStorageMetadata(字符串 providerName,DbConnection 连接,字符串 ssdl) +35
System.Web.Providers.ModelHelper.CreateMetadataWorkspace(字符串 providerName,DbConnection 连接,字符串 csdl,字符串 ssdl, 字符串 msl) +154
System.Web.Providers.ModelHelper.CreateEntityConnection(ConnectionStringSettings 设置,字符串 csdl,字符串 ssdl,字符串 msl) +109
System.Web.Providers.ModelHelper.CreateMembershipEntities(ConnectionStringSettings 设置)+28
System.Web.Providers.DefaultMembershipProvider.GetPasswordWithFormat(字符串 userName, Boolean updateLastLoginActivityDate, Int32& status, String& 密码, Int32& 格式, String& salt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& 上次活动日期)+118
System.Web.Providers.DefaultMembershipProvider.CheckPassword(字符串 用户名、字符串密码、布尔值 updateLastActivityDate、布尔值 failIfNotApproved, String& salt, Int32& passwordFormat) +81
System.Web.Providers.DefaultMembershipProvider.ValidateUser(字符串 用户名,字符串密码)+105
System.Web.Security.Membership.ValidateUser(字符串用户名,字符串 密码)+26 Staff.Web.Account.Login.OnAuthenticate(对象发件人, AuthenticateEventArgs e) 在 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(对象源,EventArgs e)+75 System.Web.UI.Control.RaiseBubbleEvent(对象源, EventArgs 参数)+37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +114
System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 事件参数)+159
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串 eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint) +1724

版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.18055

有人也遇到了这个错误,他们说他们使用了错误的存储连接到数据库,因此出现了错误。我的代码中只有一家商店。没有其他的。

更新:

我发现了问题。它与会员资格有关。我的会员连接字符串有问题。但我不知道是什么。我的应用程序需要注册,因此启用了身份验证。我保留了默认设置。还在 App_Data 文件夹中发布了 mdf 文件。 这里有一个类似的问题:Deploying ASP.NET membership to Godaddy。但解决方案不明确,答案已标记。我添加了 到连接字符串,我看到了错误

在应用程序中找不到连接名称“LocalSqlServer” 配置或连接字符串为空。

那么,我该怎么办?该成员在本地运行良好。

更新:

我也尝试了这个建议Godaddy ASP.NET membership database woes。我删除了 conn 字符串并添加了名称“LocalSqlServer”以使 Godaddy 高兴。然后,我使用此 connectionStringName 删除并添加了以下内容 - DefaultProfileProvider、DefaultMembershipProvider、DefaultRoleProvider 和 DefaultSessionProvider。还是出现系统找不到指定文件的错误。

【问题讨论】:

  • web.config 中的“defaultConnectionFactory”中有什么内容?我也可能有同样的问题,我相信它与 defaultConnectionFactory
  • 我遇到了几个问题并解决了所有问题。不确定它是什么,但它与 defaultConnectionFactory 无关。我认为这个错误是我在配置中有 TrustedConnection=true 的地方。

标签: asp.net membership


【解决方案1】:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。文字

一般来说,此类问题与需要查看的以下任何一项有关:

  • 从 Web 服务器到数据库服务器的防火墙设置
  • 连接字符串错误
  • 启用适当的协议管道/tcp-ip

尝试在安装了 sql server 的系统上使用 sql management server 连接到 sql server 并从那里开始工作。注意错误日志中的信息。

【讨论】:

  • 看来我无法在生产服务器上使用 .mdf 文件。需要为成员资格配置 SQL Server。我想这就是问题所在。
  • 将此标记为答案,因为这与我遇到的实际问题非常接近。
  • @strider 我们有类似的问题吗?你的案子有什么问题?
  • 我也有这个问题。我的“SQLSERVERAGENT”服务已停止。当我启动这项服务时,我的问题就解决了。
  • 我的问题与@MajidBasirati 相同。现在我修复了How to start with sql server agent 并将其设置为自动而不是手动。
【解决方案2】:

将我的项目发布到我的物理服务器后,我遇到了同样的错误。当我在VS2013 上编译时,我的 Web 应用程序可以在我的计算机上完美运行。当我在 sql server manager 上检查连接字符串时,一切都在服务器上运行良好。我还检查了防火墙(我将其关闭)。但仍然没有工作。我远程尝试通过 SQL 管理器使用完全相同的用户/密码和实例名称等与协议管道/tcp 连接数据库,我看到一切正常。但是当我尝试打开网站时,我收到了这个错误。有没有人知道解决这个问题的第四个选项?。

注意:我的应用程序:ASP.NET 4.5 (by VS2013),服务器:Windows 2008 R2 64bit,SQL:MS-SQL WEB 2012 SP1 此外,其他 Web 应用程序在 Web 浏览器上运行良好,它们的数据库位于同一服务器上。


经过一天的痛苦,我找到了解决问题的方法:

首先我检查了所有日志和其他详细信息,但我什么也没找到。我突然意识到这一点;当我尝试使用直接连接到已发布数据库的连接字符串并通过 VS2013 在我的计算机上运行应用程序时,我看到它正在连接另一个数据库文件。我检查了本地目录并找到了它。 ASP.NET Identity 没有使用我在 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
    {
    }
}

所以,毕竟,我重新构建并发布了我的项目,现在一切正常:)

【讨论】:

  • 您究竟是如何获得替代连接字符串的?是否可以从 Azure 门户以某种方式访问​​?在哪里?
  • 我在发布的应用程序中间歇性地收到此错误。我检查了 ApplicationDbContext 并且它不正确。我做了适当的改变,它就出现了。同样,它是断断续续的(我会假设它会与这样的错误一致),但希望我不会再遇到这个错误。谢谢
【解决方案3】:

如果您在部署 .Net MVC Web 应用程序后在 GoDaddy 中遇到此错误..并且您的 web.config 绝对正确...右键单击您的数据项目选择设置并确保与 GoDaddy 服务器的连接字符串正确正在使用中

【讨论】:

  • 谢谢,你的小评论对我帮助很大
【解决方案4】:

启动 sql server 代理,这应该可以解决您的问题

【讨论】:

    【解决方案5】:

    我遇到了同样的问题 - 对我来说是 SQL Server 内存不足。释放一些内存解决了这个问题

    【讨论】:

      【解决方案6】:

      最常见的原因可能是数据库连接字符串。您必须更改连接字符串 attachDBFile=|DataDirectory|file_name.mdf。 主机名可能有问题(本地)、localhost 或 .\sqlexpress。

      【讨论】:

        【解决方案7】:

        “/”应用程序中的服务器错误。

        系统找不到指定的文件

        描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

        异常详细信息:System.ComponentModel.Win32Exception:系统 找不到指定的文件

        来源错误:

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

        源文件:d:\C# 程序\kudvenkat\adobasics1\adobasics1\employeedata.aspx.cs 行: 23

        如果你的错误和我的一样..就这样做

        在 sqlserver 对象资源管理器中右键单击您的表,选择属性 在常规选项的左下角有一个带有服务器和连接规范的连接块。在您的 web 配置中用于 datasource=。或本地选择属性中服务器中指定的名称..

        【讨论】:

          【解决方案8】:

          我在启动 ASP.NET 应用程序时遇到此错误,在我的情况下,问题是 SQL Server 服务没有运行。开始清除它。

          【讨论】:

            【解决方案9】:

            考虑到 LocalDb 实例仅用于开发。 LocalDb 在您部署最终结果时不适用于生产服务器。

            我认为您的连接字符串指向一个 LocalDb 实例,您需要采取某些步骤将其转换为 SQL Server 数据库。这不仅仅是一个问题复制 mdf 文件。它可能会因托管公司而异,但通常,您需要创建现有数据库的备份(.bak 文件),然后将其恢复到托管公司的 SQL Server。您应该询问他们在哪里可以找到有关将数据库部署到生产环境中的说明。

            【讨论】:

              【解决方案10】:

              我遇到了这个错误,我发现我的一个连接字符串的名称是错误的。检查名称以及实际字符串。

              【讨论】:

                【解决方案11】:

                我在连接到本地数据库时遇到了同样的错误。在我的情况下,它在服务中启动服务后工作:SQL server (INSTANCE_NAME)

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-08-10
                  • 1970-01-01
                  • 2012-02-05
                  • 2013-11-21
                  相关资源
                  最近更新 更多