Reply to thread

Hello crowd,


We understand that using net framework is significantly slower than net core (Internet speed decreases by 10 times! · Issue #773 · justcoding121/Titanium-Web-Proxy), but is it necessary to reinstall visual studio with only net core and then deselect framework?


We have made a windows service, that works, but the testing of this titanium web proxy fails. Maybe it has to do with certificate?


Here is our code, we tested:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.IO;

using System.Linq;

using System.ServiceProcess;

using System.Text;

using System.Threading.Tasks;

using Titanium.Web.Proxy;

using Titanium.Web.Proxy.EventArguments;


namespace WebProxy1 {

    public partial class MyNewService : ServiceBase {

        public ProxyServer proxyServer;


        public MyNewService() {

            InitializeComponent();

        }


        protected override void OnStart(string[] args) {

            proxyServer = new ProxyServer(true, true, true);


            proxyServer.BeforeRequest += OnRequest;


            proxyServer.Start();


            WriteToFile("Service is started at " + DateTime.Now);


        }


        protected override void OnStop() {

            proxyServer.Stop();

            WriteToFile("Service is stopped at " + DateTime.Now);

        }

        public void WriteToFile(string Message) {

            string path = "E:\\Downloads\\Logs";

            if (!Directory.Exists(path)) {

                Directory.CreateDirectory(path);

            }

            string filepath = "E:\\Downloads\\Logs\\ServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_') + ".txt";

            if (!File.Exists(filepath)) {

                // Create a file to write to.  

                using (StreamWriter sw = File.CreateText(filepath)) {

                    sw.WriteLine(Message);

                }

            } else {

                using (StreamWriter sw = File.AppendText(filepath)) {

                    sw.WriteLine(Message);

                }

            }

        }


        public async Task OnRequest(object sender, SessionEventArgs e) {

            WriteToFile(e.HttpClient.Request.Url);


            // To cancel a request with a custom HTML content

            // Filter URL

            if (e.HttpClient.Request.Method.ToUpper() == "GET" && e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("google.com")) {

                e.Ok("<!DOCTYPE html>" +

                    "<html><body><h1>" +

                    "Website Blocked" +

                    "</h1>" +

                    "<p>Blocked by titanium web proxy.</p>" +

                    "</body>" +

                    "</html>");

            }


            // Redirect example

            if (e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("wikipedia.org")) {

                e.Redirect("Send Money, Pay Online or Set Up a Merchant Account - PayPal");

            }

        }

    }

}



When program is running as a windows service, it correctly logs start time to a file. And thereafter nothing else, when we browse some web pages, where it should have logged those internet requests too.


Continue reading...


Back
Top