Skip to content
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

WinHttpException: The connection with the server was terminated abnormally #128

Closed
ManuelDeLeon opened this issue Jun 14, 2016 · 24 comments
Closed

Comments

@ManuelDeLeon
Copy link

This happens on an Angular app in both Win8.1 and Win10. The problem is intermittent and we haven't figured out how to reproduce it but it happens quite often. Here's the error page:

An unhandled exception occurred while processing the request.

WinHttpException: The connection with the server was terminated abnormally
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

HttpRequestException: An error occurred while sending the request.
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

Stack Query Cookies Headers
WinHttpException: The connection with the server was terminated abnormally
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
System.Net.Http.WinHttpHandler.<StartRequest>d__102.MoveNext()

Show raw exception details
HttpRequestException: An error occurred while sending the request.
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
Microsoft.AspNetCore.NodeServices.HttpNodeInstance.<Invoke>d__7`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.<ProcessAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Asp._Views_Home_Index_cshtml.<ExecuteAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderPageAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.<ExecuteAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.ViewResult.<ExecuteResultAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResultAsync>d__44.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResultFilterAsync>d__43.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeAllResultFiltersAsync>d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResourceFilterAsync>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeAsync>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.MvcRouteHandler.<InvokeActionAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Microsoft.AspNetCore.SpaServices.Webpack.ConditionalProxyMiddleware.<Invoke>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()

Show raw exception details
@SteveSandersonMS
Copy link
Member

SteveSandersonMS commented Jun 14, 2016

Thanks for reporting this. I haven't personally been able to repro it, so if you are able to provide any repro steps (even if the repro is still intermittent) that would be great.

My best guess is that it looks like this issue: https://github.com/dotnet/corefx/issues/4934
That would be consistent with the error message and stack trace you've posted, and with its intermittent nature. If this is the case, then the problem should get fixed with a Windows 10 update, but there's nothing that .NET or NodeServices can do about it in the meantime.

The good news is that this problem should no longer matter once we change NodeService's default transport from HttpNodeInstance to SocketNodeInstance, because that will remove HTTP from the scenario altogether.

To try this out now:

  1. Make sure you have the latest version of the Microsoft.AspNetCore.NodeServices package - version 1.0.0-beta-000004

  2. Add the following to the ConfigureServices method in your Startup.cs file:

    services.AddNodeServices(new NodeServicesOptions { HostingModel = NodeHostingModel.Socket });
    

    (you'll probably also need to add using Microsoft.AspNetCore.NodeServices; at the top of the file)

Does this issue go away if you do that?

If the error still occurs, please post the updated stack trace, as it will certainly at least be different with this change.

@ManuelDeLeon
Copy link
Author

It works when I run dotnet run but when I run it from Visual Studio 2015 I get:

An unhandled exception occurred while processing the request.

NodeInvocationException: There can be only one platform. Destroy the previous one to create a new one.
Error: There can be only one platform. Destroy the previous one to create a new one.
at new BaseException (C:\MyFiles\Angular\MCAngular\node_modules\@angular\core\src\facade\exceptions.js:17:23)
at Object.createPlatform (C:\MyFiles\Angular\MCAngular\node_modules\@angular\core\src\application_ref.js:36:15)
at Bootloader.platform (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:48:23)
at new Bootloader (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:16:33)
at Object.bootloader (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:269:12)
at default_1 (<anonymous>:59:35)
at C:\MyFiles\Angular\MCAngular\node_modules\aspnet-prerendering\Prerendering.js:37:13
at C:\MyFiles\Angular\MCAngular\node_modules\domain-task\main.js:41:33
at bound (domain.js:282:14)
at runBound (domain.js:293:12)
Microsoft.AspNetCore.NodeServices.SocketNodeInstance.<Invoke>d__7`1.MoveNext()

@ManuelDeLeon
Copy link
Author

Repro for first issue: https://drive.google.com/file/d/0B0xPA49vdefIMk9hUk1FZHFJRjg/view?usp=sharing (it's basically the default Angular 2 app plus karma)

To repro the second one just add Microsoft.AspNetCore.NodeServices and update Startup.cs (as instructed).

@ManuelDeLeon
Copy link
Author

I just got the same NodeInvocationException: There can be only one platform. error while using dotnet run =(

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0]
      An unhandled exception has occurred while executing the request
Microsoft.AspNetCore.NodeServices.NodeInvocationException: There can be only one platform. Destroy the previous one to create a new one.
Error: There can be only one platform. Destroy the previous one to create a new one.
    at new BaseException (C:\MyFiles\Angular\MCAngular\node_modules\@angular\core\src\facade\exceptions.js:17:23)
    at Object.createPlatform (C:\MyFiles\Angular\MCAngular\node_modules\@angular\core\src\application_ref.js:36:15)
    at Bootloader.platform (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:48:23)
    at new Bootloader (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:16:33)
    at Object.bootloader (C:\MyFiles\Angular\MCAngular\node_modules\angular2-universal\dist\node\bootloader.js:269:12)
    at default_1 (<anonymous>:59:35)
    at C:\MyFiles\Angular\MCAngular\node_modules\aspnet-prerendering\Prerendering.js:37:13
    at C:\MyFiles\Angular\MCAngular\node_modules\domain-task\main.js:41:33
    at bound (domain.js:282:14)
    at runBound (domain.js:293:12)
   at Microsoft.AspNetCore.NodeServices.SocketNodeInstance.<Invoke>d__7`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.<ProcessAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Asp._Views_Home_Index_cshtml.<ExecuteAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderPageAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.<ExecuteAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ViewResult.<ExecuteResultAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResultAsync>d__44.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResultFilterAsync>d__43.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeAllResultFiltersAsync>d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeResourceFilterAsync>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.<InvokeAsync>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.MvcRouteHandler.<InvokeActionAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.SpaServices.Webpack.ConditionalProxyMiddleware.<Invoke>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 667.7306ms 500 text/html; charset=utf-8
info: Microsoft.AspNetCore.Server.Kestrel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60[14]
      Connection id "0HKSL3JHGVSJL" communication error
info: Microsoft.AspNetCore.Mvc.Internal.MvcRouteHandler[2]
      Executed action Mcangular.Controllers.HomeController.Index (MCAngular) in 10279.7589ms
Microsoft.AspNetCore.Server.Kestrel.Networking.UvException: Error -4081 ECANCELED operation canceled
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 10600.2835ms 200 text/html; charset=utf-8
info: Microsoft.AspNetCore.Server.Kestrel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60[14]
      Connection id "0HKSL3JHGVSJL" communication error
Microsoft.AspNetCore.Server.Kestrel.Networking.UvException: Error -4081 ECANCELED operation canceled
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:5000/favicon.ico
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
      Sending file. Request path: '/favicon.ico'. Physical path: 'C:\MyFiles\Angular\MCAngular\wwwroot\favicon.ico'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 114.6252ms 200 image/x-icon

@SteveSandersonMS
Copy link
Member

Thanks for posting the repro project. I tried it, and I'm afraid it didn't repro in my environment. I ran it both via dotnet new, and from VS, with both the Socket and Http hosting models, and refreshed in the browser many times, and it never once produced any of the errors you've listed.

As for the intermittent failures (both the WinHttpException errors if you're using Http hosting, and the "socket was broken" errors if you're using Socket hosting), I have a pretty strong suspicion of what's going on. I think you probably have something running in the background on your machine that writes to files in the ClientApp folder, which would cause NodeService's instance of node.exe to shut down and restart. If that happens while we're in the middle of server-side rendering, the resulting error will be a failed HTTP request (in Http hosting) or a disconnected socket (in Socket hosting), which exactly corresponds to what you've reported. The sort of things that might write to the ClientApp folder could be:

  • Some VS add-in/extension (e.g., something that does webpack builds, or a karma test runner)
  • A standalone test runner
  • Theoretically, some unrelated Windows software (anti-virus or whatever)

Please try this:

You can disable NodeService's file watching by amending the code you added to Startup.cs as follows:

services.AddNodeServices(new NodeServicesOptions {
    HostingModel = NodeHostingModel.Socket, // Or you can use NodeHostingModel.Http
    WatchFileExtensions = new string[] { }
});

Now NodeServices won't restart the node.exe instances when the contents of ClientApp change. Does that stop the intermittent failures?

Of course, now, after you've made a change, it won't show up in the server-side rendering results until you restart the app entirely. So this is not really what you want, but at least it helps to diagnose what causes the failures.

If this change does fix it, then the good news is that the intermittent failures will not happen in production. They are just an artifact of how you have set up your dev machine. So you can either disable whatever is running in the background (VS add in, test runner, or whatever), or you can keep it running and just reload the page whenever it triggers a request failure.

I just got the same NodeInvocationException: There can be only one platform.

That's completely different - that's is an error message coming back from Angular. Please review anything you've put in your Angular startup file (e.g., boot-server.ts) and check it against Angular docs. If you continue to get this and think it's a bug in the JavaScriptServices templates, can you file that as a separate issue with repro instructions based on the generator-aspnetcore-spa Angular 2 template?

@SteveSandersonMS
Copy link
Member

I just got the same NodeInvocationException: There can be only one platform.

Update: I figured out how to reproduce this error. It is a problem in the templates. I'll find a fix.

@SteveSandersonMS
Copy link
Member

The There can be only one platform error was because our boot-server.ts was trying to create a new bootloader - and then dispose it - on each request. If you had two requests at once, then it was possible for there to be two bootloaders active at once, which led to the error. The fixed code retains a bootloader instance for the lifetime of your app, which is how it's meant to work. generator-aspnetcore-spa version 0.1.9 is now published and contains this fix.

The original issue, however, remains open. I'm waiting for feedback on whether disabling the file watcher resolves the intermittent failures. @ManuelDeLeon, please let me know when you have a chance to try it.

@ManuelDeLeon
Copy link
Author

Adding WatchFileExtensions = new string[] { } seems to get rid of the pipe broken messages. I have to test with an empty project to see if I get them there (traveling so don't have a lot of time at the moment).

Upgrading to 0.1.9 seems to get rid of There can be only one platform

Theoretically, some unrelated Windows software (anti-virus or whatever)

I need to test for that.

@ManuelDeLeon
Copy link
Author

I'm still trying to figure this one out. I set up a file watcher, started the server and got the pipe broken error plus:

[Node] Restarting due to file change: node_modules\aspnet-prerendering\package.json

I restarted the server and got the same pipe broken message and the following:

[Node] Restarting due to file change: node_modules\angular2-universal\polyfills.js

The file watcher reported a whole bunch of files changed in the node_modules folder:

[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\angular2-universal\polyfills.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\polyfills.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\angular2-universal-polyfills\node.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\angular2-universal-polyfills\dist\polyfills-node.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\es6-promise\package.json Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\es6-promise\dist\es6-promise.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\es6-shim\package.json Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\es6-shim\es6-shim.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\angular2-universal-polyfills\dist\zone-node\index.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\zone.js\dist\zone-node.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\symbol-observable\package.json Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\symbol-observable\index.js Changed
[6/23/2016 10:28:43 AM] Changed: \MCAngular\node_modules\symbol-observable\ponyfill.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\@angular\platform-server\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_construction\parser.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tokenization\tokenizer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tokenization\preprocessor.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\common\unicode.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tokenization\location_info_mixin.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tokenization\named_entity_trie.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_construction\open_element_stack.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\common\html.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_construction\formatting_element_list.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_construction\location_info_mixin.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_adapters\default.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\common\doctype.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\common\foreign_content.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\common\utils.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\simple_api\simple_api_parser.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\simple_api\tokenizer_proxy.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\serialization\serializer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\jsdom\jsdom_parser.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\jsdom\parsing_unit.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\lib\tree_adapters\htmlparser2.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\directives\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\directives\node_form.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\directives\node_universal_styles.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\http\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\http\node_http.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\common\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\common\tokens\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\common\cookie.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\common\localStorage.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\common\title.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\http\preload_cache.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\xhr2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\xhr2\lib\xhr2.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\pipes\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\dom\node_dom_renderer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\helper.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\document.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parse5\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\node_shared_styles_host.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\node_template_parser.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\node_xhr_impl.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\platform\node_template_parser-rc.0.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\router\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\router\node_platform_location.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\env.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\bootloader.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\ng_preboot.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\preboot\dist\src\node\preboot_node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\preboot\dist\src\node\browser_code_generator.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\q\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\q\q.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-rename\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-rename\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\tools\node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\utils.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\ast.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\parse.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\scope.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\output.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\compress.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\sourcemap.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\mozilla-ast.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\lib\propmangle.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\uglify-js\tools\exports.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\source-map.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\source-map-generator.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\base64-vlq.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\base64.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\util.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\array-set.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\mapping-list.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\source-map-consumer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\binary-search.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\quick-sort.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\node_modules\source-map\lib\source-node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\minifier.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\through2.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\node_modules\readable-stream\transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\xtend\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\xtend\immutable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deap\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deap\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deap\lib\deap.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deap\lib\typeof.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-util\lib\PluginError.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\array-differ\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\array-differ\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\array-uniq\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\array-uniq\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\chalk\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\chalk\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\escape-string-regexp\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\escape-string-regexp\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\ansi-styles\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\ansi-styles\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\has-ansi\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\has-ansi\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\chalk\node_modules\supports-color\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\chalk\node_modules\supports-color\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-util\node_modules\object-assign\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-util\node_modules\object-assign\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\fancy-log\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\fancy-log\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\time-stamp\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\time-stamp\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\source-map.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\source-map-generator.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\base64-vlq.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\base64.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\util.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\array-set.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\mapping-list.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\source-map-consumer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\binary-search.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\quick-sort.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-sourcemaps-apply\node_modules\source-map\lib\source-node.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\uglify-save-license\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\uglify-save-license\uglify-save-license.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-uglify\lib\createError.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\isarray\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\isarray\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\gulp-insert\node_modules\readable-stream\lib\_stream_passthrough.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\src\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\isarray\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\isarray\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\streamqueue\node_modules\readable-stream\lib\_stream_passthrough.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\event-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\event-stream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\through\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\from\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\from\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\duplexer\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\duplexer\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\map-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\map-stream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\pause-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\pause-stream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\split\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\split\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\stream-combiner\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\stream-combiner\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\through2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\through2\through2.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\isarray\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\isarray\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\bl\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\bl\bl.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-buffer\node_modules\readable-stream\duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\through2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\through2\through2.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\readable-stream\transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\isarray\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\isarray\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\clone\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\clone\clone.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\clone-stats\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\clone-stats\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\lib\cloneBuffer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\lib\isBuffer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\lib\isStream.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\lib\isNull.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\vinyl-source-stream\node_modules\vinyl\lib\inspectStream.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browserify\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browserify\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\module-deps\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\module-deps\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browser-resolve\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browser-resolve\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\detective\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\detective\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\detective\node_modules\acorn\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\detective\node_modules\acorn\dist\acorn.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\detective\node_modules\acorn\dist\walk.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\lib\_stream_readable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\lib\_stream_writable.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\lib\_stream_duplex.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\lib\_stream_transform.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\concat-stream\node_modules\readable-stream\lib\_stream_passthrough.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parents\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\parents\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\path-platform\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\path-platform\path.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\stream-combiner2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\stream-combiner2\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\duplexer2\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\duplexer2\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deps-sort\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\deps-sort\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\shasum\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\shasum\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\json-stable-stringify\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\json-stable-stringify\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browser-pack\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\browser-pack\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\JSONStream\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\JSONStream\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\jsonparse\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\jsonparse\jsonparse.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\umd\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\umd\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\combine-source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\combine-source-map\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\convert-source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\convert-source-map\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\lodash.memoize\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\lodash.memoize\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\index.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\package.json Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\source-map.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\source-map-generator.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\base64-vlq.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\base64.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\util.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\array-set.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\mapping-list.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\source-map-consumer.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\binary-search.js Changed
[6/23/2016 10:28:44 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\quick-sort.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\inline-source-map\node_modules\source-map\lib\source-node.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\lib\path-is-absolute.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\lib\mappings-from-map.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\source-map.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\source-map-generator.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\base64-vlq.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\base64.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\util.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\array-set.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\mapping-list.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\source-map-consumer.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\binary-search.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\quick-sort.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\combine-source-map\node_modules\source-map\lib\source-node.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browser-pack\_prelude.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\insert-module-globals\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\insert-module-globals\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\lexical-scope\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\lexical-scope\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\astw\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\astw\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\astw\node_modules\acorn\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\astw\node_modules\acorn\dist\acorn.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\syntax-error\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\syntax-error\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\syntax-error\node_modules\acorn\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\syntax-error\node_modules\acorn\dist\acorn.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\lib\builtins.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\node_modules\assert\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\node_modules\buffer\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\node_modules\constants-browserify\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\stream-http\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\node_modules\stream-browserify\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\browserify\node_modules\url\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\labeled-stream-splicer\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\labeled-stream-splicer\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\stream-splicer\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\stream-splicer\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\labeled-stream-splicer\node_modules\isarray\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\labeled-stream-splicer\node_modules\isarray\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\has\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\has\src\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\function-bind\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\function-bind\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\function-bind\implementation.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\htmlescape\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\htmlescape\htmlescape.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\read-only-stream\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\read-only-stream\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\preboot\dist\src\node\normalize.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\preboot\node_modules\lodash\package.json Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\preboot\node_modules\lodash\lodash.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\preboot\dist\src\node\presets.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\preboot\dist\src\node\utils.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\render.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-universal\dist\node\stringify_element.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-express-engine\dist\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-express-engine\dist\src\engine.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-hapi-engine\dist\index.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-hapi-engine\dist\src\engine.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-hapi-engine\dist\src\ts-hoek.js Changed
[6/23/2016 10:28:45 AM] Changed: \MCAngular\node_modules\angular2-universal\common.js Changed

I'll probably have to setup some kind of security auditing to see which process is modifying the files.

@antmdvs
Copy link

antmdvs commented Jun 23, 2016

I'll probably have to setup some kind of security auditing to see which process is modifying the files.

You could try https://technet.microsoft.com/en-us/sysinternals/processmonitor

@ManuelDeLeon
Copy link
Author

It took me a while to get a good log since it doesn't happen always. I created a new Angular 2 project and added services.AddNodeServices(new NodeServicesOptions { HostingModel = NodeHostingModel.Socket }); to the Startup.cs file. I then basically restarted the server and refreshed the web page every now and then until I got:

C:\MyFiles\Angular\test7>dotnet run
Project test7 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Development
Content root path: C:\MyFiles\Angular\test7
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
[Node] ts-loader: Using typescript@1.8.10 and C:\MyFiles\Angular\test7\tsconfig.json
[Node] webpack built d7b8a04b54cfa4a97131 in 5838ms
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:5000/__webpack_hmr
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 54.7901ms 302
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:5000/
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
      Executing action method Test6.Controllers.HomeController.Index (test7) with arguments () - ModelState is Valid'
info: Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ViewResultExecutor[1]
      Executing ViewResult, running view at path /Views/Home/Index.cshtml.
info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0]
      User profile is available. Using 'C:\Users\manuel.de.leon\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
[Node] Restarting due to file change: node_modules\aspnet-prerendering\package.json
One or more errors occurred. (Pipe is broken.)

Here's the Process Monitor log file:

ProcessMonitor_Log.xlsx

Only dotnet.exe and node.exe touch the files.

@antmdvs
Copy link

antmdvs commented Jun 28, 2016

Curious.. I haven't been able to run the React-Redux template in Socket mode either (on my Win7 PC). I always get either "Pipe is broken." or "Bad Gateway" http response.

@gdyrrahitis
Copy link

Same issue here. Installed aspnetcore-spa template for Angular2, getting this error:

System.Net.Http.WinHttpException: The connection with the server was terminated abnormally
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.WinHttpHandler.<StartRequest>d__101.MoveNext()

@antmdvs
Copy link

antmdvs commented Jun 30, 2016

  1. On which OS version(s) are these symptoms occurring?
  2. Are you running any full disk encryption, online backup, or endpoint security software?

@gdyrrahitis
Copy link

gdyrrahitis commented Jun 30, 2016

System details:
Windows 10, 64-bit OS
Node version: 4.4.5
Visual Studio 2015, Update 3.
No full disk encryption, online backup or endpoint security software.

I've been able to reproduce the error for my case.
Steps:

  1. Run aspnetcore-spa generator in directory
  2. Choose Angular2 project
  3. Run the app to make sure it works (Ctrl+F5)
  4. Go to components and require a non-existent CSS. For example, go to components > home.ts and add the following code in @Component decorator: styles: [require("./home.css")]. This will result in a 404, because home.css does not exist (nor there is a way to get that given that path even if it existed with current configuration)
  5. Run the application again.
  6. Boom

So it seems that 404 causes the problem.
As @SteveSandersonMS stated, probably it is related with this issue: dotnet/corefx#4934

The following is the error I get when updating the app while running.
image

@SteveSandersonMS
Copy link
Member

SteveSandersonMS commented Jun 30, 2016

@gdyrrahitis:

Thanks for your repro steps. Do you definitely get the WinHttpException just from taking those steps alone? When I tried, your steps do lead to a fault, but the fault I see is that on step 6, instead of getting any error, the request just hangs indefinitely. Eventually you get A task was cancelled when the request times out about 100 seconds later.

As far as I can tell, you'd only get the WinHttpException if you also do something else to terminate the Node instance, such as killing it on the command line, or modifying a .js/.ts file so that it restarts. Can you clarify your repro steps, then? Do you definitely get a WinHttpException error purely from doing those steps and nothing else?

As for the requests hanging if Webpack compilation fails, this is now fixed. Please update your copy of aspnet-webpack to 1.0.4+ and let me know if you still find any unexpected behaviour.

More generally:

Most people on this thread are probably aware, but the WinHttpException is not really the underlying cause of any error, but rather is just the generic way that .NET finds out that the Node instance is gone while it was waiting for a response from it. The reason the Node instance is gone could be all kinds of things. I'm working to try to make sure that either this never happens, or if it's unavoidable due to an error in your application code, that the error we report into .NET specifies something more useful about the underlying cause, and not just WinHttpException which doesn't really provide much insight.

@ManuelDeLeon
Copy link
Author

@SteveSandersonMS

What about Pipe is broken? (#128 (comment) & #128 (comment))

@SteveSandersonMS
Copy link
Member

That's the Socket transport equivalent for the same generic error (the Node instance is gone while .NET was waiting for it). It doesn't indicate what actually caused this to happen. Various people have reported getting this message, but often there will be different underlying causes. As per my comment before, I'm trying to find ways of surfacing the underlying cause rather than this generic message.

Right now, I'm aware of the following:

  • Because we have the Node instances configured to restart themselves if one of the .js/.ts/.json/etc. files is written, it can happen if you (or one of your VS extensions, or some other process on your machine) modify the file while an RPC call is in flight. That's most likely a dev-time-only (not prod) issue. I'm going to look into ways to make the Node restart mechanism more graceful so that in-flight RPC calls are given time to complete. Hopefully this will fix the cases where people report the error as "intermittent".
  • The case reported by @antmdvs sounds different, because from how he phrases it, it doesn't sound intermittent but rather like it just happens every time. If so, it's certainly a different issue, and I'd need some way to repro it, because that never happens for me. Maybe @antmdvs has modified the code in some way so as to break it, but I don't know - his comment is phrased as if he's just trying to run a fresh project without having modified it. There may be something special about his machine - I don't know what would repro it.

@SteveSandersonMS
Copy link
Member

@ManuelDeLeon Also, thanks for posting that process monitor log. Unfortunately it doesn't pinpoint a cause, because your console output says that the modified file was aspnet-prerendering\package.json, but I can't see any way that NodeServices would ever write to that file, or any other package.json file.

The spreadsheet you gave shows only two incidents of that file being accessed, and both times it was just being read (not written) by node.exe. So, I wonder if the process monitor log really includes everything - perhaps there are other processes running (e.g., system processes, not in your user account) that are modifying files.

Also, your spreadsheet shows that the last write time for aspnet-prerendering\package.json at 7:59:11AM on 6/23/2016, whereas it appears you were running your app at about 2:59PM on 6/24/2016. So it definitely does not appear that process monitor has seen whatever wrote to that file.

Maybe it's possible that nothing is actually writing to that file, and maybe Node's fs.watch API might just be broken and giving false positives. Someone reported false positives on Windows 7 in a VM here: nodejs/node-v0.x-archive#2839, but they never tracked it down and they closed the issue. If it does turn out that fs.watch has fundamental problems, then we can consider moving the file-watching logic into the .NET side and having it notify Node when it needs to restart.

@gdyrrahitis
Copy link

@SteveSandersonMS Thanks for the response. Yes, by purely following these steps I can get that error. So if I try to re-run the application (Run with Debugging or without from VS 2015) will get the WinHttpException.
Originally what I did was first time to run the aspnetcore-spa generator and test drive the project, check the code etc. I was playing around with the Angular2 Components, and I added a new non-existent style. After that closed my PC without looking what is wrong. Next day tried to run the application and got the WinHttpException. After some time thinking why is this happening, I realized that this change might be the cause, so I tried these steps which lead to this error. If I remove the requirecall to the non-existed style the application runs just fine.

Haven't tried any other options/repro steps yet, nor searched more on the issue, will probably look in the upcoming days and come up if something needs to be reported (will give a try to update the aspnet-webpack and will let you know). Cheers

@SteveSandersonMS
Copy link
Member

So if I try to re-run the application (Run with Debugging or without from VS 2015) will get the WinHttpException

That's strange - I don't know why that would happen, and I can't repro it. Invoking "Run [with debugging]" from VS doesn't cause such an issue on my machine. Is it possible you have some VS extension installed that writes files when you invoke "run"? Maybe something that tries to compile TypeScript or run Webpack?

What happens once you've updated to the latest aspnet-webpack package and do the same?

@Toxicable
Copy link

So I just had this issue and noticed it happened when I change main: './App/main.ts' to app: './App/main.ts' in webpack.config.js in the angular 2 template project, this dosn't line up with what you guys are describing but it might be a possible reason for it happening

@SteveSandersonMS
Copy link
Member

SteveSandersonMS commented Jul 7, 2016

Based on all the comments here, I've completely rewritten how the Node instance lifetimes are managed, how processes are restarted, and how file changes are watched for:

  • The file watching is now implemented in .NET code rather than on the Node.js side. Hopefully this will avoid the platform-specific issues we're suspecting with Node's fs.watch.
  • When we detect that a file was written and the Node process needs to restart, it now goes through a "connection draining" phase whereby a new Node instance starts immediately and handles subsequent calls, but the old instance is given a certain grace period to complete any in-flight RPC calls before it's terminated.

Hopefully, the combination of these two enhancements will avoid the Node processes getting killed prematurely (if an RPC call is still in flight) or unexpectedly (if fs.watch reports false positives on Windows 7 VMs), and hence minimise aborted HTTP requests (which cause WinHttpException) in Http hosting, or "socket is broken" situations in Socket hosting. Also I've done a bunch of other work to catch possible errors in extra places (e.g., during webpack compilation) and ensuring they are correctly routed back to .NET rather than leading to timeouts or useless WinHttpException errors.

To get the update:

Upgrade to 1.0.0-beta-000007 or later of whichever JavaScriptServices NuGet packages you're using (that includes Microsoft.AspNetCore.NodeServices, Microsoft.AspNetCore.SpaServices, Microsoft.AspNetCore.AngularServices, Microsoft.AspNetCore.ReactServices). You don't need to create a new project - it's enough to update to the latest packages in your existing projects.

Note that a lot of low-level stuff has changed, so consider beta-000007 to be very much a "preview", so if you hit trouble please downgrade to beta-000006 and post a new issue describing what was broken.

About this thread:

This is a long thread, and basically all of it is now obsolete, because so much has now changed. If you're just arriving here, please disregard all the comments above as they probably don't apply in your situation.

To minimise confusion, I'll close this issue now. For any further connection troubles now, please post a new issue describing the problem and how to reproduce it. Any similarity with events or error messages described above is purely coincidental :)

@SteveSandersonMS
Copy link
Member

@antmdvs Hope you don't mind that I removed your comment. Trying to keep the last item in this thread the one I posted above, to avoid confusion. As per above, please file a new issue if there's still a problem after you update.

@aspnet aspnet locked and limited conversation to collaborators Jul 7, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants