Pending Review
Last Updated: 23 Aug 2019 13:15 by Gary
Eugene
Created on: 24 May 2019 11:01
Type: Bug Report
1
The system proxy was changed. Click to reenable capturing

Hi,

I have a connectivity issue when I run Fiddler (Progress Telerik Fiddler Web Debugger). I work behind a corporate proxy server and the server IP is changed every few hours. The change in IP is normally okay, but when I am running Fiddler with the 'Automatically Authenticate' option enabled, then Fiddler shows an error every time the proxy is changed; it shows a yellow error message suggesting "The system proxy was changed. Click to reenable capturing".

Clicking on the error in Fiddler works fine and it reconnects, but I find this frustrating because if i don't realise there was an error in fiddler and don't click it immediately then it affects my connectivity and some activities on my pc start to fail without me realising.

My suggestion is that you should let Fiddler auto-reconnect when this type of proxy change happens and when the 'Automatically Authenticate' option is enabled. I know it can't try to reconnect forever because it will cause an endless cycle for other people who have other types of proxy disconnects, but in my case it would be very helpful to let fiddler at least try once to auto reconnect (for me 1 retry is usually fine and Fiddler is able to connect to the new proxy address, but perhaps you can let the number of retries be a menu option so that users can set the number of retries that they want Fiddler to do after there was a proxy change or proxy error).

 

Thanks so much for your work, I really like Fiddler!

I hope you can bug fix this or add it as a feature, it will be very helpful!

Regards,

Eugene

Attached Files:
4 comments
Gary
Posted on: 23 Aug 2019 13:15

I experience the same issue with the latest update, I did not have any issues with previous versions.

I anot sur eif its related, but I also get errors when I try to press the capture/stop capturing button or try to close the application.

I get a .net error saying that a the parameter is incorrect.

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): The parameter is incorrect
   at Telerik.NetworkConnections.Windows.WinINetPInvokes.ExecuteInternetQueryOrSetOption(String connectionName, INTERNET_PER_CONN_OPTION[] pOptions, Func`3 internetQueryOrSetOption, Action`1 success)
   at Telerik.NetworkConnections.Windows.WinINetPInvokes.SetProxySettingsForNetworkConnection(WinINetProxySettings proxySettings, String connectionName)
   at Telerik.NetworkConnections.NetworkConnectionsManager.SetProxySettingsForConnections(ProxySettings settings, IEnumerable`1 fullNames)
   at ..() in C:\Jenkins\Fiddler_Windows\workspace\Fiddler2\Common\Core\Connectoids.cs:line 199
   at Fiddler.Proxy.Detach(Boolean ‚‰) in C:\Jenkins\Fiddler_Windows\workspace\Fiddler2\Common\Core\Proxy.cs:line 1305
   at Fiddler.frmViewer.actDetachProxy() in C:\Jenkins\Fiddler_Windows\workspace\Fiddler2\Viewer.cs:line 6948
   at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.MenuItem.MenuItemData.Execute()
   at System.Windows.Forms.Command.Invoke()
   at System.Windows.Forms.Control.WmCommand(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at Fiddler.frmViewer.WndProc(Message& m) in C:\Jenkins\Fiddler_Windows\workspace\Fiddler2\Viewer.cs:line 12262
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3416.0 built by: NET472REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Fiddler
    Assembly Version: 5.0.20192.25091
    Win32 Version: 5.0.20192.25091
    CodeBase: file:///C:/Users/*******/AppData/Local/Programs/Fiddler/Fiddler.exe
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3416.0 built by: NET472REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3429.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
*****

 

I REMOVED DUE TO SENSITIVE DATA

 

******

----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Eric
Posted on: 27 May 2019 12:50

A slightly better version of the script I shared below can be found here: 

https://gist.github.com/ericlaw1979/decab196fe127cd9e548b7f675cf22c9

Eric
Posted on: 27 May 2019 12:41
Note that others have asked for this too, so it might make sense to create a preference for it. When "Protect capture settings" are enabled, Fiddler monitors this event and attempts to reattach the proxy after 500ms, 1000ms, 2000ms and 4000ms. If the connection is still not attached after that, it gives up and shows the yellow bar.
Eric
Posted on: 27 May 2019 12:40

It sounds like you've got some other client software which is periodically changing your client proxy settings.

Fiddler fires a WhenDetachedUnexpectedly event when the yellow bar appears, so you can write code that automatically reconnects the proxy at that time. Fiddler doesn't do that itself to avoid getting in an infinite loop/fight with other software that might be doing the same thing.

Click Rules > Customize Rules. Scroll to static function OnBoot() and inside the function add:

        static function OnBoot() {

          FiddlerApplication.oProxy.add_DetachedUnexpectedly(UnexpectedDetach);

 

Just before that function, add the following new function:

static function UnexpectedDetach(o: Object, ea: EventArgs){
FiddlerObject.UI.sbpInfo.Text = "Automatically reattached at " + new Date();
FiddlerApplication.oProxy.Attach();
}

 

Save the file and restart Fiddler. Now you'll notice that Fiddler will automatically reattach the proxy if it changes at runtime.

 

 don't click it immediately then it affects my connectivity and some activities on my pc start to fail without me realising

This part doesn't make a ton of sense to me, insofar as Fiddler will continue to proxy any traffic sent to it even if it's not registered as the system proxy.