How to avoid Internet Explorer proxy settings causing Remoting problem?

H

harry

Hi,

I have a program that runs on multiple client pc's. Occasionally one or more
of those pc's use VPN to connect to another corporate network. When using
VPN they need to set proxy server in Internet Explorer connection settings
(proxy:8080). However, as soon as this setting is enabled, the remoting
program running on their pc stops communicating with the server it sends
data to. I've disabled proxy setting on the affected pc, rebooted and my
program commnicates with the server ok. So it appears to be the proxy
setting.

My questions are:

1) Can I do anything in my program to avoid Internet Explorer proxy setting
impacting on my program. Can I somehow have my program ignore this setting?

2) Why does internet explorer setting cause problem with my program? I guess
it must be system wide setting but just happens to be set in IE..well maybe
I answer my own question here or is this incorrect? Is there .NET Framework
network settings?

Thanks
Harry
 
S

Sunny

Hi,

I assume that your program is using HTTP channels for remoting. Please,
tell more about when this problem happens. If after the program is
started, and you change the settings in IE? How does it stops? Do you
use callbacks/events? What happens if you make the connection, setup the
proxy in IE, and then start your program? Does that proxy need
authentication?

Sunny
 
H

harry

Yes. Using HTTP channel.

If my program is started while the proxy setting is disabled, there is no
problem.

If my program is running, and the proxy setting is enabled (or enabled then
disabled) still no problem with my program.

However, if my program is started / restarted when the proxy setting is
enabled then my program hangs when trying to communicate with the server. I
guess because it is expecting proxy however no proxy server exists on local
network.

If my program was started when proxy setting was enabled, then proxy setting
is disabled, my program still has problems communicating with server - I
guess it still tries to use proxy server.

I guess my only option is to temporarily disable proxy server (if enabled)
prior to creating HTTP channel. Can I do this from VB.NET?

Thanks
Harry
 
S

Sunny

Hi,

If my program is started while the proxy setting is disabled, there is no
problem.

If my program is running, and the proxy setting is enabled (or enabled then
disabled) still no problem with my program.

However, if my program is started / restarted when the proxy setting is
enabled then my program hangs when trying to communicate with the server. I
guess because it is expecting proxy however no proxy server exists on local
network.

If my program was started when proxy setting was enabled, then proxy setting
is disabled, my program still has problems communicating with server - I
guess it still tries to use proxy server.

The remoting infrastructure reads the proxy settings when channel is
registered. That explains what you see. When you start your program
without proxy set in IE, it registers a channel without using proxy. And
even if you enable it later, it does not affect already registered
channel. The same is whit when you start your program with proxy
settings enabled.
I guess my only option is to temporarily disable proxy server (if enabled)
prior to creating HTTP channel. Can I do this from VB.NET?

It can be done. But what if your client needs a proxy to connect? I
would put some option for this, so the user can decide if he/she needs
the proxy settings to be used.

If you want to disable the use of the IE settings, you have to put this
before the channel registration:

GlobalProxySelection.Select = GlobalProxySelection.GetEmptyWebProxy();

Hope that helps
Sunny
 
H

harry

Thanks Sunny. I tried that however unfortunately the same problem still
exists. Have you any other sugestions, or is my code incorrect?

This code is called when loading the form:

Private Sub CreateServerChannel()
m_DataManager = New DataManager(Me)

System.Net.GlobalProxySelection.Select =
System.Net.GlobalProxySelection.GetEmptyWebProxy
Dim chnl As New HttpChannel(3333)
ChannelServices.RegisterChannel(chnl)

RemotingServices.Marshal(m_DataManager, "DataManager.soap")

End Sub

Thanks
Harry
 
S

Sunny

Hi,
what exception you receive?
Is this a server code?

This code should avoid using of any proxy.

Your problem may be somewhere else. Can you try to explain the exact
configuration, in which you see and don't see the problem?

Sunny
 
H

harry

Hi,

I'm very new to, and know very little about remoting. So my explanations may
not have all the correct remoting terminology.

The client PC is a Windows XP pc with up to date patches, with .NET
Framework Ver 1.1 (I use VS.NET 2002 for development). I also
tested on another XP machine, and also a Win2000 machine. These also have
exactly the same problem only occuring when proxy setting is enabled. I
included the code you gave me when testing on the other pc's.

There is no exception raised. The code simply stops/hangs, even though I
have a timeout:
///
Dim prop As IDictionary = ChannelServices.GetChannelSinkProperties(Manager)
prop("timeout") = 2000
///

The timeout works fine when the proxy is disabled and the server is shut
down. So not only does the code appear to continue to use the proxy server
when I insert that line of code you recommended, but it also doesn't
timeout.

The cause is exactly as previously explained. Absolutely nothing else
changed except for the proxy server setting enabled in internet explorer.
Even the checkbox labeled "Bypass proxy Server for local addresses" is also
checked and problem still exists.

I guess then my only remaining option is to temporarily disable proxy (if
enabled) while registering the channel, and then re-anabling once
registered. The time period elapsed between disabling proxy / registering
channel / re-anbling proxy is reasonably short, therefore I doubt user will
have an issue with it.

Have you any alternate suggestion? Or advice in disabling/enabling proxy
setting in code?

Thanks for your help
Regards
Harry




Sunny said:
Hi,
what exception you receive?
Is this a server code?

This code should avoid using of any proxy.

Your problem may be somewhere else. Can you try to explain the exact
configuration, in which you see and don't see the problem?

Sunny

Thanks Sunny. I tried that however unfortunately the same problem still
exists. Have you any other sugestions, or is my code incorrect?

This code is called when loading the form:

Private Sub CreateServerChannel()
m_DataManager = New DataManager(Me)

System.Net.GlobalProxySelection.Select =
System.Net.GlobalProxySelection.GetEmptyWebProxy
Dim chnl As New HttpChannel(3333)
ChannelServices.RegisterChannel(chnl)

RemotingServices.Marshal(m_DataManager, "DataManager.soap")

End Sub

Thanks
Harry





Sunny said:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top