【问题标题】:iisexpress.exe started crashing with Access Violation in IsLocalRequest calliisexpress.exe 开始在 IsLocalRequest 调用中因访问冲突而崩溃
【发布时间】:2017-10-17 08:08:36
【问题描述】:

在新的 171010-1400 Windows 版本和 Visual Studio Update 4 中,我之前的工作配置出了问题。正如我从 windbg 输出中看到的那样,iisexpress.exe 在第一个或第二个请求上以某种方式失败,我猜它与设置 cookie 有关。 我从调试中看到的内容如下:

ModLoad: 00007ff9`417a0000 00007ff9`417cb000   C:\WINDOWS\system32\dwmapi.dll
18312 w3wphost!W3WP_HOST::IncrementMessages [w3wphost.cxx @ 4073]:IncrementMessages called
(4a30.4788): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\IIS Express\IISUTIL2.dll - 
IISUTIL2!IsLocalRequest+0x2e:
00007ff9`02766d5e 0fb702          movzx   eax,word ptr [rdx] ds:00000000`00000000=????

我可以从哪里获得有关此 IsLocalRequest 调用的更多信息?我猜 IISExpress.exe 不是开源的。

Update1:​​我认为 IISUTIL dll 不在符号服务器上:

BGHELP: ntdll - public symbols  
        c:\temp\localsymbols\ntdll.pdb\186E113737814D3E2749831F5FE67D621\ntdll.pdb
Symbol search path is: SRV*c:\temp\localsymbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\temp\localsymbols*http://msdl.microsoft.com/download/symbols

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       SRV*c:\temp\localsymbols*http://msdl.microsoft.com/download/symbols
SYMSRV:  BYINDEX: 0x16
         c:\temp\localsymbols*http://msdl.microsoft.com/download/symbols
         iisutil2.pdb
         AA5E50675E9E42B0950F0C58B916E2671
SYMSRV:  UNC: c:\temp\localsymbols\iisutil2.pdb\AA5E50675E9E42B0950F0C58B916E2671\iisutil2.pdb - path not found
SYMSRV:  UNC: c:\temp\localsymbols\iisutil2.pdb\AA5E50675E9E42B0950F0C58B916E2671\iisutil2.pd_ - path not found
SYMSRV:  UNC: c:\temp\localsymbols\iisutil2.pdb\AA5E50675E9E42B0950F0C58B916E2671\file.ptr - path not found
SYMSRV:  HTTPGET: /download/symbols/iisutil2.pdb/AA5E50675E9E42B0950F0C58B916E2671/iisutil2.pdb
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/iisutil2.pdb/AA5E50675E9E42B0950F0C58B916E2671/iisutil2.pd_
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/iisutil2.pdb/AA5E50675E9E42B0950F0C58B916E2671/file.ptr

SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  RESULT: 0x80190194
DBGHELP: C:\Program Files\IIS Express\iisutil2.pdb - file not found
DBGHELP: iisutil2.pdb - file not found
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\IIS Express\IISUTIL2.dll - 
DBGHELP: IISUTIL2 - export symbols

【问题讨论】:

  • 您是否还记录了一个事件?错误应用程序名称:iisexpress.exe,版本:10.0.14358.1000,时间戳:0x574fc56b 错误模块名称:IISUTIL2.dll,版本:10.0.14358.1000,时间戳:0x574fc585 异常代码:0xc0000005 错误偏移:0x0002728b 错误进程 ID:0应用程序启动时间:0x01d34762efa5ff0f 错误应用程序路径:C:\Program Files (x86)\IIS Express\iisexpress.exe 错误模块路径:C:\Program Files (x86)\IIS Express\IISUTIL2.dll
  • @Access IT:是的,这就是我开始调试的原因:)
  • 您正在运行哪些控件?在包含 TELERIK 控件之前,我可以让它正常工作,然后即使在干净的 Web 应用程序上也遇到问题(访问冲突)。在执行了通常繁琐的任务后,我能够使用 IIS(不是 express)。
  • 一个包含多个组件的大型 MVC 应用程序。在我尝试设置 cookie 或尝试重定向之前,一切正常。

标签: iis-express


【解决方案1】:

就我而言,问题的根源是StackoverflowException。我的输出窗口中没有任何消息表明此问题。

【讨论】:

  • 您能否详细说明错误是什么,我遇到了同样的错误以及消息堆栈溢出。我还在 StackOverflow 上提出了一个问题stackoverflow.com/questions/70376351/…
  • @AsadUllah 在我的例子中,属性 getter 返回自身而不是其私有属性成员,这导致递归无限循环。
【解决方案2】:

出于历史目的。这发生在我身上是因为代码错误。

在我的例子中,尝试使用 AutoMapper.Mapper.Map(model),但没有设置映射定义。 此调用也是在隐式运算符中进行的:

public static implicit operator DestinyType (ModelType model)
{
      return Mapper.Map <DestinyType> (model);
}

我的替代方法是使用类似的东西:

     public static implicit operator DestinyType (ModelType model)
     {
         var mapper = Mapper.Configuration.FindTypeMapFor <ModelType, DestinyType> ();

         if (mapper == null)
         {
             throw new InvalidOperationException ();
         }

         return Mapper.Map <DestinyType> (model);
     }

【讨论】:

  • 就我而言,将枚举转换为字符串时崩溃了。
  • 运行时代码错误:可选参数重载。用同名方法调用重载,但没有输入可选参数 > 意外递归,哎呀,想知道为什么它反复命中断点,哈! (下面的示例代码愚蠢)这是我的开发忏悔的结尾------------ public class Duh { void CallMySelf(object x, object y) { CallMySelf(x, y); /* 应该放入第三个属性以避免递归,或者以不同的方式命名方法*/ } void CallMySelf(object x, object y, object z = null) { /*我打算传递它的地方*/ } }
  • 我在映射 IList 时遇到了 AutoMapper.Collection 6.0.0 和 AutoMapper.Extensions.Microsoft.DependencyInjection 7.0.0 的问题。升级到 7.0.1 和 8.1.0 修复了它。
【解决方案3】:

根据微软 (https://github.com/Microsoft/dotnet/issues/523): 1) 这是 httpd.sys 中已知的回归,很快将在开发人员构建中修复 2) IIS Express pdb 不会发布,这是他们的“有意识的决定”

【讨论】:

  • 我今天仍然遇到这个问题。如果我重新启动我的电脑,它就会消失。但是如果我重新启动 Vs,它仍然会发生。
【解决方案4】:

我也遇到了这个问题,IIS express 因这个错误而关闭。挠了一阵子后,我发现它来自我的一个类中 IDisposable 的错误实现。

【讨论】:

    【解决方案5】:

    我遇到此错误消息是因为我将视图命名为“视图”,将其更改为“详细信息”解决了该问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多