Program.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System.IO;
  2. using System.Threading;
  3. using Microsoft.AspNetCore.Builder;
  4. using Microsoft.AspNetCore.Hosting;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.AspNetCore.Rewrite;
  7. using Microsoft.Extensions.DependencyInjection;
  8. using Microsoft.Extensions.Logging;
  9. using Peachpie.AspNetCore.Web;
  10. namespace Server
  11. {
  12. class Program
  13. {
  14. static void Main(string[] args)
  15. {
  16. ThreadPool.GetMinThreads(out int workerThread, out int completionThread);
  17. ThreadPool.SetMinThreads(workerThread * 2, completionThread);
  18. var host = new WebHostBuilder()
  19. .UseKestrel()
  20. .UseUrls("http://0.0.0.0:8080")
  21. .UseStartup<Startup>()
  22. .Build();
  23. host.Run();
  24. }
  25. }
  26. class Startup
  27. {
  28. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  29. {
  30. // loggerFactory.AddConsole();
  31. app.UseRewriter(new RewriteOptions().Add(ShortUrlRule));
  32. void ShortUrlRule(RewriteContext context)
  33. {
  34. var req = context.HttpContext.Request;
  35. req.Path = new PathString("/index.php");
  36. context.Result = RuleResult.SkipRemainingRules;
  37. }
  38. app.UsePhp(new PhpRequestOptions(scriptAssemblyName: "Website"));
  39. }
  40. }
  41. }