3

We have an app that is being published "precompiled". When we deploy it to the server, it updates momentarily, no interruptions, no pauses. This is really important since the app is used by 1000s of companies

Then we added SignalR.

Which, in turn, brought the OWIN dependency.

Now, the precompiled app chokes for 9-10 seconds when we update. w3wp jumps to 100% cpu load.

I profiled the processes cpu usage and I saw this among the top time-consuming call stacks:

System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start
Microsoft.Owin.Host.SystemWeb.OwinCallContext.AcceptCallback
System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start
Microsoft.Owin.Host.SystemWeb.OwinCallContext.AcceptCallback
System.Web.WebSocketPipeline+<>c__DisplayClass6.<ProcessRequestImplAsync>b__3
System.Web.Util.SynchronizationHelper.SafeWrapCallback
System.Web.Util.SynchronizationHelper.QueueSynchronous
System.Web.WebSocketPipeline+<ProcessRequestImplAsync>d__8.MoveNext
System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start
System.Web.WebSocketPipeline.ProcessRequest
//...skipped

Wait, what? "CompilerServices"?

Apparently, OWIN is doing some compiling work on the background.... Or is it something else?

Anyone faced this? Any workarounds?

What is SignalR doing during startup?

UPDATE: We tried EnableJavaScriptProxies = false; we also tried our own IAssemblyLocator - neither has helped.

Alex from Jitbit
  • 53,710
  • 19
  • 160
  • 149
  • 1
    I'm not sure why you think it's owin. I see WebSocketPipeline there, which would indicate that it's SignalR (or rather the WebSocket library) that's doing the compiling. In fact, that makes sense because SignalR dynamically generates proxy hubs. – Erik Funkenbusch Jun 20 '17 at 16:30
  • Comments added to your GitHub issue: https://github.com/SignalR/SignalR/issues/3958 – Ian Yates Jun 27 '17 at 01:59

0 Answers0