2

我在 Windows 2008 R2 和 Node 0.8 上使用 IISnode 0.1.21 x64

我的应用程序使用 4 个线程成功运行。但是一段时间后(比如 3-4 小时),响应不会从 IISnode 发送到客户端,并且用户不会在页面上获得数据(但应用程序的其余部分正在工作)。我尝试在 IISnode 文件夹中创建一个日志,但没有从那里得到任何东西。

如果我从任务管理器中删除一个 node.exe 进程,应用程序就会开始正常工作。又过了几个小时,我又回到了原点。

我得到了 ETW 日志,这就是它显示的内容:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Guid="{1040dfc4-61db-484a-9530-584b2735f7f7}" />
        <EventID>0</EventID>
        <Version>0</Version>
        <Level>2</Level>
        <Task>0</Task>
        <Opcode>0</Opcode>
        <Keywords>0x0</Keywords>
        <TimeCreated SystemTime="2012-10-21T13:21:56.783161800Z" />
        <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
        <Execution ProcessID="2468" ThreadID="3484" ProcessorID="0" KernelTime="195" UserTime="435" />
        <Channel />
        <Computer />
    </System>
        <Data>{00000000-0000-0000-6E02-0080000000CA}: iisnode failed to process http response status line</Data>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Guid="{1040dfc4-61db-484a-9530-584b2735f7f7}" />
        <EventID>0</EventID>
        <Version>0</Version>
        <Level>5</Level>
        <Task>0</Task>
        <Opcode>0</Opcode>
        <Keywords>0x0</Keywords>
        <TimeCreated SystemTime="2012-10-21T13:21:56.783171500Z" />
        <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
        <Execution ProcessID="2468" ThreadID="3484" ProcessorID="0" KernelTime="195" UserTime="435" />
        <Channel />
        <Computer />
    </System>
        <Data>{00000000-0000-0000-6E02-0080000000CA}: iisnode request processing failed for reasons unrecognized by iisnode</Data>
</Event>
4

1 回答 1

1

这种情况通常表明 node.exe 和 iisnode 之间的连接在应用程序发送回 HTTP 响应的过程中中断。这又可能是响应处理期间异常的结果。检查您的响应代码路径是否有未处理的异常,和/或注册一个全局 uncaughtException 处理程序以查看是否有任何异常未处理可能是一个好主意。如果这没有帮助,请在https://github.com/tjanczuk/iisnode/issues/new上打开一个问题。

于 2012-10-22T16:54:53.743 回答