public static IWebHostBuilder ConstructWebHostBuilder( StartupOptions options, IServiceCollection serviceCollection) { using var _ = Log.OnEnterAndExit(); // FIX: (ConstructWebHostBuilder) dispose me var disposables = new CompositeDisposable { StartToolLogging(options) }; var httpPort = GetFreePort(options); options.HttpPort = httpPort; var probingSettings = HttpProbingSettings.Create(options.HttpPort.PortNumber); var webHost = new WebHostBuilder() .UseKestrel() .UseDotNetInteractiveHttpApi(true, httpPort, probingSettings, serviceCollection) .UseUrls(probingSettings.AddressList.Select(a => a.AbsoluteUri).ToArray()) .UseStartup <Startup>(); return(webHost);
private static IKernel CreateKernel( string defaultKernelName, FrontendEnvironment frontendEnvironment, StartupOptions startupOptions, HttpProbingSettings httpProbingSettings) { var compositeKernel = new CompositeKernel(); compositeKernel.FrontendEnvironment = frontendEnvironment; compositeKernel.Add( new CSharpKernel() .UseDefaultFormatting() .UseNugetDirective() .UseKernelHelpers() .UseJupyterHelpers() .UseWho() .UseXplot() .UseMathAndLaTeX()); compositeKernel.Add( new FSharpKernel() .UseDefaultFormatting() .UseNugetDirective() .UseKernelHelpers() .UseWho() .UseDefaultNamespaces() .UseXplot() .UseMathAndLaTeX()); compositeKernel.Add( new PowerShellKernel() .UseJupyterHelpers() .UseXplot(), new[] { "#!pwsh" }); compositeKernel.Add( new JavaScriptKernel(), new[] { "#!js" }); compositeKernel.Add( new HtmlKernel()); var kernel = compositeKernel .UseDefaultMagicCommands() .UseLog() .UseAbout() .UseHttpApi(startupOptions, httpProbingSettings); SetUpFormatters(frontendEnvironment); kernel.DefaultKernelName = defaultKernelName; var enableHttp = new SubmitCode("#!enable-http", compositeKernel.Name); enableHttp.PublishInternalEvents(); compositeKernel.DeferCommand(enableHttp); return(kernel); }