|
using namespace System |
|
using namespace System.Collections.Generic |
|
using namespace System.IO |
|
using namespace System.Linq |
|
using namespace System.Threading.Tasks |
|
using namespace Microsoft.AspNetCore |
|
using namespace Microsoft.AspNetCore.Hosting |
|
using namespace Microsoft.Extensions.Configuration |
|
using namespace Microsoft.Extensions.Logging |
|
using namespace Microsoft.AspNetCore.Builder |
|
using namespace Microsoft.AspNetCore.Server.Kestrel.Core |
|
using namespace Microsoft.Extensions.FileProviders |
|
using namespace Microsoft.Extensions.DependencyInjection |
|
using namespace Microsoft.AspNetCore.StaticFiles |
|
|
|
pushd $PSScriptRoot |
|
|
|
#before I could make a WebHostBuilder I needed these |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Hosting.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Hosting.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Hosting.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Hosting.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Hosting.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Hosting.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.FileProviders.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.FileProviders.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.EnvironmentVariables.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.EnvironmentVariables.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Primitives.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll |
|
|
|
# before it would .build() I needed these |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.Kestrel.Core.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.Kestrel.Core.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.Kestrel.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.Kestrel.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.FileExtensions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.FileExtensions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Hosting.Server.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Hosting.Server.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Http.Features.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Features.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Logging.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.DependencyInjection.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Http.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Http.2.2.2\lib\netstandard2.0\Microsoft.AspNetCore.Http.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Options.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.Logging.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.ObjectPool.2.2.0\lib\netstandard2.0\Microsoft.Extensions.ObjectPool.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.FileProviders.Physical.2.2.0\lib\netstandard2.0\Microsoft.Extensions.FileProviders.Physical.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Diagnostics.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Diagnostics.Abstractions.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Diagnostics.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Diagnostics.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Http.Extensions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Extensions.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.HttpOverrides.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.HttpOverrides.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Routing.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Routing.Abstractions.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Routing.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Routing.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.IISIntegration.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.IISIntegration.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.Server.Kestrel.Https.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Server.Kestrel.Https.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.AspNetCore.WebUtilities.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.WebUtilities.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.Binder.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Extensions.Configuration.Json.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Json.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Extensions.FileSystemGlobbing.2.2.0\lib\netstandard2.0\Microsoft.Extensions.FileSystemGlobbing.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Extensions.Logging.Console.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Console.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Extensions.Options.ConfigurationExtensions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll |
|
add-type -path $PSScriptRoot\bin\Microsoft.Net.Http.Headers.2.2.0\lib\netstandard2.0\Microsoft.Net.Http.Headers.dll |
|
|
|
# # In order to configure static files, we needed... |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.StaticFiles.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.StaticFiles.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.Extensions.WebEncoders.2.2.0\lib\netstandard2.0\Microsoft.Extensions.WebEncoders.dll |
|
|
|
# In order to .Start() we needed... |
|
add-type -Path $PSScriptRoot\bin\System.IO.Pipelines.4.5.3\lib\netstandard1.3\System.IO.Pipelines.dll |
|
add-type -Path $PSScriptRoot\bin\Microsoft.AspNetCore.Connections.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Connections.Abstractions.dll |
|
|
|
$webroot = Join-Path $PSScriptRoot Web |
|
|
|
class Polaris { |
|
[void] Configure([IApplicationBuilder]$app, [IHostingEnvironment]$env) { |
|
Write-Host "Configuring Polaris" |
|
[StaticFileExtensions]::UseStaticFiles($app) |
|
[DefaultFilesExtensions]::UseDefaultFiles($app) |
|
|
|
# $DirOptions = [DirectoryBrowserOptions]@{ |
|
# FileProvider = [PhysicalFileProvider]::new("C:\Users\Joel\Projects\Modules\TouchPS\Source\Web\") |
|
# RequestPath = "/web" |
|
# } |
|
# [DirectoryBrowserExtensions]::UseDirectoryBrowser($app, $DirOptions) |
|
} |
|
|
|
[void] ConfigureServices([IServiceCollection]$svc) { |
|
Write-Host "Configuring Polaris Services" |
|
# [DirectoryBrowserServiceExtensions]::AddDirectoryBrowser($svc) |
|
} |
|
} |
|
|
|
$builder = [WebHostBuilder]::new() |
|
$builder = [HostingAbstractionsWebHostBuilderExtensions]::UseContentRoot($builder, $webroot) |
|
$builder = [WebHostBuilderKestrelExtensions]::UseKestrel($builder) |
|
$builder = [WebHostBuilderKestrelExtensions]::ConfigureKestrel($builder, |
|
[Action[WebHostBuilderContext,KestrelServerOptions]]{ |
|
param($context, $options) |
|
$options.Limits.MaxConcurrentConnections = 100; |
|
$options.Limits.MaxConcurrentUpgradedConnections = 100; |
|
$options.Limits.MaxRequestBodySize = 10 * 1024; |
|
$options.Limits.MinRequestBodyDataRate = [MinDataRate]::new(100, "00:00:10"); |
|
$options.Limits.MinResponseDataRate = [MinDataRate]::new(100, "00:00:10"); |
|
$options.Listen([IPAddress]::Loopback, 5000); |
|
}) |
|
|
|
$builder = [WebHostBuilderExtensions]::UseStartup($builder, [Polaris]) |
|
|
|
$webhost = $builder.build() |
|
[WebHostExtensions]::Run($webhost) |