AfterSessionComplete事件未在Window Service中触发(在控制台中调试)。 Fiddercore

问题描述 投票:1回答:1

我的申请没有解雇事件AfterSessionComplete。代码如下

fiddler.cs

    namespace proj
{

    public static class Fiddler
    {

        public static void start()
        {

                startProxy();

        }



        public static void startProxy()
        {

            FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
            FiddlerApplication.Startup(8888, true, true, true);

        }



        public static void FiddlerApplication_AfterSessionComplete(Session sess)
        {
          //Working aftersessioncomplete
        }
    }
}

Service1.cs

namespace Proj
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Fiddler.start();
        }

        protected override void OnStop()
        {
        }
        internal void TestStartupAndStop(string[] args)
        {
            this.OnStart(args); //use to debug
                                //For commandLine

        }
    }
}

Program.cs中

namespace Proj
{
    static class Program
    {

        static void Main(string[] args)
        {
            if (Environment.UserInteractive)
            {
                Service1 service1 = new Service1();
                service1.TestStartupAndStop(args);
            }
            else
            {

            }
        }
    }
}

我正在创建一个Windows服务,但我遇到了调试问题,这就是为什么我使用控制台应用程序调试来检查我的代码是否正常工作。

当我知道aftersessioncomplete没有射击时,我在FiddlerApplication.AfterSessionComplete事件中添加了断点。它停止应用程序而不去public static void FiddlerApplication_AfterSessionComplete(Session sess)任何人都可以帮忙吗?或面临同样的问题?

c# windows console-application fiddler fiddlercore
1个回答
1
投票

会话无法在窗口服务中触发,因为证书弹出窗口服务无法提供的GUI证书,因此代码在证书安装时卡住而在会话事件后没有触发。要解决此问题,请记住在安装证书后使用控制台应用程序并隐藏控制台应用程序

© www.soinside.com 2019 - 2024. All rights reserved.