c# Service Reference achter proxy

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een webservice gemaakt, en deze dmv een service reference toegevoegd aan mijn project (windows form).

In het project kan ik de webservice aanroepen en dit werkt ook prima.

Wanneer ik de applicatie start vanaf een pc die gebruik maakt van een proxy server kan de webservice niet meer benaderd worden. Ik vermoed dat ik moet opgeven wat de proxy server is...

Ik heb gegoogled etc maar niet het juiste voorbeeld/oplossing gevonden.

De code die ik gebruik...

code:
1
2
3
4
UpdateSoapClient svClient = new UpdateSoapClient();
 svClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(<URL NAAR WEBSERVICE>);

svClient.EenFunctieVanWebservice();

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En [google="c# web service client through proxy"] leverde niets zinnigs op :? M.a.w.: wat heb je al gezocht, wat vond je, wat heb je daarvan geprobeerd en waarom denk je dat 't niet werkt(e) zoals je dat graag wil? Toch allemaal zaken die in onze Quickstart vermeld zijn ;)

[ Voor 63% gewijzigd door RobIII op 05-09-2012 15:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb idd al veel gegoogled en diverse oplossingen geprobeerd maar helaas zonder resultaat.

bijvoorbeeld:
code:
1
2
3
4
5
Dim cr As New System.Net.NetworkCredential("user", "pwd", "MyDomain") 
Dim pr As New System.Net.WebProxy("127.0.1.2", 80) 

pr.Credentials = cr 
s.Proxy = pr


Ik heb de property .Proxy niet...

en

code:
1
2
3
4
5
6
7
8
BasicHttpBinding binding = new BasicHttpBinding("APISoap"); /* APISoap is the name of the binding element in the app.config */
    binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
    binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic;
    binding.UseDefaultWebProxy = false;
    binding.ProxyAddress = new Uri(string.Format("http://{0}:{1}", proxyIpAddress, proxyPort)); 
    EndpointAddress endpoint = new EndpointAddress("http://www.examplewebservice/api.asmx");

    WebServiceClient client = new WebServiceClient(binding, endpoint);


loopt vast omdat "APISoap" niet bestaat...

[ Voor 50% gewijzigd door Verwijderd op 05-09-2012 15:58 ]


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Verwijderd schreef op woensdag 05 september 2012 @ 15:57:
...
code:
1
2
3
4
5
6
7
8
BasicHttpBinding binding = new BasicHttpBinding("APISoap"); /* APISoap is the name of the binding element in the app.config */
    binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
    binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic;
    binding.UseDefaultWebProxy = false;
    binding.ProxyAddress = new Uri(string.Format("http://{0}:{1}", proxyIpAddress, proxyPort)); 
    EndpointAddress endpoint = new EndpointAddress("http://www.examplewebservice/api.asmx");

    WebServiceClient client = new WebServiceClient(binding, endpoint);


loopt vast omdat "APISoap" niet bestaat...
Je moet volgens mij wel de name van een bestaande httpbinding gebruiken...
Je kan het trouwens ook in je app/web.config pleuren. Iets in de trant van:

XML:
1
2
3
4
5
6
7
8
9
<bindings>
    <basicHttpBinding>
        <binding name="FileStreamBinding" useDefaultWebProxy="true" transferMode="StreamedRequest">
            <security mode="None">
                <transport clientCredentialType="None"/>
            </security>
        </binding>
    </basicHttpBinding>
</bindings>

[ Voor 110% gewijzigd door Soundless op 05-09-2012 16:06 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 05 september 2012 @ 15:57:
Heb idd al veel gegoogled en diverse oplossingen geprobeerd maar helaas zonder resultaat.
En je hebt ook al eens verder dan de 1e en 2e hit gekeken? Dit is (bij mij) de 3e hit.
Verwijderd schreef op woensdag 05 september 2012 @ 15:57:
loopt vast omdat "APISoap" niet bestaat...
Heb je de comment überhaupt gelezen?
C#:
1
... /* APISoap is the name of the binding element 

Ofwel: vul daar de naam in die jij gebruikt hebt voor jouw bindingelement.

[ Voor 32% gewijzigd door RobIII op 05-09-2012 16:19 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij