Visual Studio 2017 error: Unable to start program, An operation is not legal in the current state

Visual Studio 2017 error: Unable to start program, An operation is not legal in the current state

全新安装 Visual Studio 2017 后,我尝试 运行 .NET Core Web 项目,并在 Chrome 上尝试 运行 时出现此错误:

Unable to start program, An operation is not legal in the current state

我找到了一个对我有用的解决方法。

使用 Chrome select 作为浏览器,单击 Debug 菜单和 select Attach to Process...

在随后的对话框中,列表中的 select Chrome.exe 并单击 Attach to:Select 按钮。勾选 Native 框,然后 Attach (或双击 Chrome.exe):

这会在不启动浏览器的情况下启动项目 运行。在 Chrome 中停止并重新启动,错误消失。

当然,另一个可能的解决方案是使用不同的浏览器,但我喜欢在 Chrome 中进行调试。 :-)

今天我遇到了这个错误,我只是做了一个太简单的小解决方法。

  1. 关闭您在打开 Visual Studio.
  2. 之前可能已经打开的所有 chrome 实例
  3. 现在停止调试并再次 运行 您的应用程序。

您不会再收到错误,如果调试器没有命中,请再次刷新浏览器。

Update (12-Dec-2018):

我刚刚在 Visual Studio 2019 预览中测试了这个错误,现在看来这个错误已经修复了。

希望对您有所帮助。

对我来说,解决方案(解决方法)是在 Chrome 上关闭 JavaScript 调试,我认为这是 VS 2017 中引入的新功能。

转到工具>选项>调试>常规并关闭的设置为ASP.NET启用JavaScript调试(Chrome 和 IE).

这已经是一个已知问题,seems to have an investigation underway

有关 VS 2017 中 JS 调试的完整信息: https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

我在最近的 VS 2017 更新(2017 年 3 月 14 日发布:build 26228.09)后遇到了同样的问题。我的程序可以在 IE 中正常调试,但会在 Chrome 中崩溃。在 Windows 命令行中杀死 Chrome 的所有实例为我解决了这个问题。

taskkill /im chrome.exe /f

然后我可以在 Chrome 中进行调试。

我认为在 visual studio 中启用 javascript 调试并同时启用 chrome 开发人员工具调试器时会发生这种情况。出现问题是因为两个不同的调试器试图调试同一个进程。

我刚刚关闭了所有打开的 chrome 个实例,停止了我的项目,然后再次启动它。这为我解决了问题。

3 个选项

  1. 在工具 > 选项 > 调试 > 常规中关闭 JavaScript 调试功能
  2. 杀死所有 chrome 个任务
  3. 换个浏览器调试

我案例中的其他答案均无效。我必须重新启动 windows 才能再次调试应用程序。

我尝试了 Sibeesh Venu 的答案,但这对我不起作用。我相信,如果我杀死了所有 chrome 个进程,它就会起作用。我完成了一些其他测试,发现在 Chrome 设置中关闭 "Continue where you left off" 可确保我不会再发生这种情况。

我最近遇到了这个错误。对我来说修复它的是关闭 chrome window 那是 运行 检查员。每当我检查网页时,它都会弹出自己的 window。不需要在 visual studio.

上禁用或更改任何内容

对我来说,问题是在调试 Chrome window 上登录我的 Google 帐户。在我登录之前,这对我来说一直很好用。一旦我退出 Chrome 的那个实例并选择通过复选框 删除我的所有设置,调试器就开始工作了又好了

我的 Chrome 的非调试实例仍然登录 Google 且未受影响。主要问题是我可爱的插件从调试版本中消失了,但至少我可以再次单步执行客户端代码。

当我收到此错误时,您可以尝试的另一种对我有用的解决方案是清理解决方案,然后进行重建。由于其他解决方案对我没有帮助,我认为这可能会对同一条船上的其他人有所帮助。

我使用 chrome 内置的开发者控制台工具来调试 javascript 所以标记为答案的解决方案对我来说非常有用。
这是我在尝试调试 asp.net 应用程序时从 VS Community 2017 收到的奇怪错误消息:

"An error occurred that usually indicates a corrupt installation (code 0x80040154). If the problem persists, repair your Visual Studio installation via 'Add or Remove Programs' in Control Panel." and it's fixed now.

更改此项目设置可以解决我的问题。

要么在VS2017中切换你的浏览器。或者以管理员身份打开命令提示符并执行 tskill chrome 大约 10 次以确保应用程序完全退出。然后重试。有时会卡在别的进程上,甚至需要重启。

当我试图同时调试两个解决方案时出现此错误消息,因为我想直观地比较差异。取消选中为 ASP.NET(Chrome 和 IE)选项启用 JavaScript 调试,但我仍然感到困惑,为什么我不能一次调试多个解决方案。由于这是一个已知问题,也许这将在 Visual Studio 的更新中得到解决。这是希望....

启用 JavaScript 调试的解决方案

从 Chrome 浏览器,转到:设置>高级>系统disable “当 Google Chrome 关闭时继续 运行ning 后台应用程序”。

重要!必须为正确的 Chrome 用户配置文件设置上面的选项!
Visual Studio 有自己的 Chrome 用户配置文件,您在使用“普通”Chrome 浏览器时设置的首选项不会对从 Chrome 启动的浏览器产生任何影响VS(启用 JS 调试)。

  1. 运行 您在 VS 中的项目“启用 JavaScript 调试...” 启用。 Chrome 浏览器应该打开,你会在 VS 中看到错误。
  2. 回到 VS 启动的同一个 Chrome 实例并 禁用 “当 Google Chrome 已关闭”,如上所述。
    如果您没有“启用 JavaScript 调试...”enabled/checked,Chrome 实例将使用您的默认用户配置文件并且错误将持续存在。
  3. Stopre运行 你的项目,Chrome 应该按预期加载项目,没有任何错误并启用 JS 调试。

每当您停止调试时,您必须关闭由 VS 启动的 Chrome 实例,否则下次您 运行 时将出现错误 return ] 该项目。如果还有其他 Chrome 个实例,您可以将它们保持打开状态。

要确保 Chrome 使用正确的用户配置文件,请转至 chrome://version/ 通过在 url 栏中键入它,然后查看 配置文件路径 的值。在 Windows 上,正确的值应如下所示:
"C:\Users\[UserName]\AppData\Local\Microsoft\VisualStudio.*\WebTools\ChromeUserData_*\Default"

如果 Chrome 使用浏览器默认设置,或者如果您使用帐户登录 Chrome,它将如下所示:
"C:\Users\[UserName]\AppData\Local\Google\Chrome\User Data\[ProfileName] <i>OR</i> Default"

奖金说明。如果您在调试时使用 Chrome 扩展,则必须在 VS 配置文件处于活动状态时安装这些扩展。

我的解决方法是在任务栏中查找打开的 chrome 应用程序,右键单击并关闭它们。

通过关闭我最近安装的 Calendly Chrome 扩展程序,我在 Chrome 中解决了这个问题。可能不是 Calendly 特定的,所以我建议关闭任何新安装的 Chrome 扩展。以下是我采取的步骤:

  1. 调试程序
  2. 让Chrome打开VS抛出错误
  3. 单击“确定”清除 VS 错误
  4. 点击 Chrome
  5. 右上角的三个点
  6. 将鼠标悬停在 "More Tools" 上并单击扩展程序
  7. 找到 Calendly 磁贴并勾选右下角的滑块以 关闭位置
  8. 关闭任务中的所有 Chrome windows 包括任何 Chrome windows 继续 运行
  9. 的酒吧
  10. 停止调试
  11. 运行 在调试模式下再次编程

如果您无法通过任何其他方式解决问题,请试试这个(对我有用!):

将下面的代码保存到您的网络配置文件中,然后重命名 value="yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

其他尝试:

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>