描述

启动任何控制台应用程序时,该代码将立即在AccessViolationException上停止运行(其他信息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏)。下一节将提供更多信息。

技术症状

调用堆栈仅包含外部代码:


  异常:抛出:“消息过滤器指示应用程序正忙。>(HRESULT异常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))”(System.Runtime.InteropServices.COMException)
  引发了System.Runtime.InteropServices.COMException:“消息过滤器指示应用程序正忙。(HRESULT的异常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))”
  时间:2015/12/10 10:59:55
  线程:vshost.NotifyLoad [15344]


我创建了一个新的控制台应用程序,只包含Console.WriteLine(“ Hello world!”);。

运行新的Hello world应用程序会导致相同的异常和相同的结果
调用堆栈。

背景

正如我将要解释的那样,我怀疑这与问题无关,但是我认为重要的是要回答一个明显的问题:“问题发生时您在做什么?”我所做的最后更改是将扩展添加到Selenium驱动程序,以从应用程序注销热键:

    public static void logout(this IWebDriver Driver)
    {
        Driver.FindElement(By.TagName("body")).Click();
        new Actions(Driver)
            .SendKeys(Keys.Control + Keys.Shift + "x")
            .Perform();
    }


我还为我的一个项目在App.Config文件中进行了更改,但还原此更改也没有影响。

删除此代码(驱动程序扩展和/或App.Config更改)不能解决此问题。检索以前的签入不能解决问题。我是目前致力于此解决方案的唯一人员。

发现

如前所述,这是在空的控制台应用程序中发生的。 Windows窗体应用程序可以正常启动。单元测试项目也可以正常启动。

研究

我花了几个小时研究这个问题。看来我研究过的每个类似问题都与仅调试或.NET版本有关。对我来说,发行版也会出现问题。此外,我一直在使用.NET 4.5,但在这方面没有任何问题或更改。我找不到任何值得发表的文章,但我可能忽略了某些内容。

Visual Studio信息

Microsoft Visual Studio旗舰版2013
版本12.0.30501.00更新2
.NET版本4.6.00081(不过我在项目属性中注意到它说4.5)
以管理员身份运行

反馈

从devenv.exe / SafeMode运行时,Visual Studio加载了:

构造此框架的内容时遇到异常。此信息也记录在“ C:\ Users \ UserName \ AppData \ Roaming \ Microsoft \ VisualStudio \ 12.0 \ ActivityLog.xml”中。


  异常详细信息:
  System.UnauthorizedAccessException:访问被拒绝。 (来自HRESULT的异常:0x80070005(E_ACCESSDENIED))
     在Microsoft.VisualStudio.Shell.Interop.IVsShell5.LoadPackageWithContext(Guid&packageGuid,Int32原因,Guid&上下文)
     在Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.GetPackage()
     在Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ConstructContent()


此外,当尝试运行时,我收到一条错误消息“尝试运行项目时出错:无效的指针”(同样,devenv.exe / SafeMode中的VS-如果不熟悉,请参见how to run visual studio without plugin and all third party feature

请让我知道是否可以提供其他信息。

最佳答案

可能是因为当您为项目命名时,不能放空格,我放了空格,它也给了我AccessViolationException,请尝试使用大写字母来分隔单词,但只能使用字母,不能使用空格。

关于c# - 无法从Visual Studio运行控制台应用程序:System.AccessViolationException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34208257/

10-13 09:37
查看更多