首页 > 解决方案 > 在 Visual Studio 2017 中使用退出代码 -2147023895 (0x800703e9) 调试 Web 项目时应用程序崩溃

问题描述

我正在尝试使用 Visual Studio 2017 专业版在新安装的笔记本电脑上调试 Web api 项目。

它使用.NET Framework 4.6.1.

Web 应用程序(不是 Visual Studio)在输出窗口中启动后几秒钟崩溃。

程序“[4868] iisexpress.exe”已退出,代码为 -2147023895 (0x800703e9)。

对于每次崩溃,我都会在事件查看器中看到这条消息

找不到来自源 VSTTExecution 的事件 ID 0 的描述。引发此事件的组件未安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。

如果事件起源于另一台计算机,则显示信息必须与事件一起保存。

活动中包含以下信息:

(devenv.exe, PID 24968, Thread 1) IdleProcessorManager.DoWork - Job throw: Invalid URI: 无法确定 URI 的格式。在 System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) 在 System.Uri..ctor(String uriString) 在 Microsoft.VisualStudio.TestTools.TestCaseManagement.SolutionIntegrationManager.IsRunConfig(String filename) 在 Microsoft.VisualStudio.TestTools .TestCaseManagement.SolutionIntegrationManager.d__351.MoveNext() 在 Microsoft.VisualStudio.TestTools.TestCaseManagement.IdleProcessorManager.DoWork()

消息资源存在,但在消息表中未找到消息

我已经尝试过删除 .vs 文件夹、重新启动电脑、卸载/安装 vs、卸载/安装 .net 框架等。

有人可以帮我解决这个问题,但无法找到这些失败的“真正”原因。

注意事项 - 1. 该项目在其他机器上运行良好。2.我可以使用项目模板创建一个新项目并成功运行/调试应用程序。

编辑:在更多调查中,我发现 Web 应用程序中断(除了退出代码之外没有任何错误)并退出。

public virtual DataSet Execute(SqlCommand sqlCommand, SqlConnection sqlConnection)
{
    if (sqlCommand == null || sqlConnection == null)
    {
        return null;
    }

    var ds = new DataSet();

    if (sqlConnection.State != ConnectionState.Open)
    {
        sqlConnection.Open();
    }

    using (var adp = new SqlDataAdapter(sqlCommand))
    {
        adp.Fill(ds); <---- BREAKS here!
        return ds;
    }
}

在另一台工作的机器上,它工作得非常好。SP 返回大约 390K 记录。可能的stackoverflow异常?

标签: c#visual-studio

解决方案


请检查新笔记本电脑上安装的框架版本。我怀疑次要版本与您的新笔记本电脑不匹配。

您可以通过以下链接检查您的机器上安装了哪些版本:

https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed

编辑:1-从以下位置安装版本: https ://www.microsoft.com/en-us/download/details.aspx?id=49981

2-或者我建议您将项目的框架升级到 .NET Framework 4.7.2


推荐阅读