Navigatie

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Archief

Categorieën

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Sign In

Zoeken

# Monday, 21 May 2007
Monday, 21 May 2007 14:51:57 (GMT Daylight Time, UTC+01:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Okay het is maandag, nooit mijn beste dag dus een vage foutmelding komt meestal op dit soort dagen voor. Zo ook vandaag. Ik heb een webservice draaien, hiervoor heb ik een proxy klasse gemaakt zodat ik hem vanuit code kan gebruiken. Tamelijk standaard allemaal. Deze service heb ik getest op meerdere servers en draaien perfect. Vanochtend kreeg ik een bugmelding dat de webservice op 1 server een foutmelding gaf. De volgende foutmelding wordt getoond  "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. "  

Eerst maar eens een SSL Site geconfigureerd in mijn lokale IIS, zodat ik dit probleem ook lokaal kan reproduceren en debuggen. Via deze link vind je de info hoe je dit snel kan doen. Toen ik mijn lokale site startte viel me direct op dat ik het beveiligingswaarschuwing dialoogscherm te zien kreeg.

Deze waarschuwing wordt uiteraard ook getoond als je de webservice opvraagt, hier moest het probleem wel ergens liggen. Eigenlijk wil kunnen opgeven dat ik standaard door wil gaan. M.a.w. ik vertrouw het certificaat van de website altijd. De allereerste post die ik over dit onderwerp tegenkwam was een blogpost van Jan Tielens.  De methode die hij beschrijft is obsolete in .NET 2.0. In .NET 2.0 moet je gebruik maken van de ServicePointManager.ServerCertificateValidationCallback Property. Feitelijk maak je een CallBack functie die wordt aangeroepen door de ServicePointManager wanneer een request via HTTPS wordt gedaan.

Onderstaand de callback in VB.Net. Deze retourneert altijd true. M.a.w. ik vertrouw het certificaat.

Private Function ValidateCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
        Return True
End Function

Onderstaande regel registreert de callback op ServicePointManager.

ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateCertificate)

Wanneer verificatie van het certificaat vereist is wordt nu ValidateCertificate aangeroepen wat altijd true terug geeft en werkt de webservice nu op alle servers. Uiteindelijk toch nog een goede maandag

Comments [0] | | # 
# Friday, 18 May 2007
Friday, 18 May 2007 08:36:16 (GMT Daylight Time, UTC+01:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Tijdens mijn presentatie op Code-Camp werd door Peter Schipper de vraag gesteld hoe je ervoor kon zorgen dat Update Panels tijdens het laden van het eerste request voor een pagina direct afgaan. Dit zodat de gebruiker ook tijdens het eerste request niet lang hoeft te wachten voordat de pagina geladen is. Het antwoord op deze vraag had ik niet direct paraat en met het antwoord "hier kom ik nog op terug" sloot ik mijn sessie af. Peter is hier echter verder mee gegaan en heeft hier een uitgebreide blogpost over geschreven die ik jullie niet wil onthouden. 

Naar blogpost "Preloading ASP.Net AJAX UpdatePanel"

Comments [0] | | # 
# Sunday, 13 May 2007
Sunday, 13 May 2007 18:18:39 (GMT Daylight Time, UTC+01:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Code-camp is afgelopen. Ik vond het een zeer geslaagd evenement. Er waren zeer veel interessante sessies en ook de sfeer was perfect. Ik hoop dat de organisatie daar ook zo over denkt en volgend jaar weer een code-camp gaat organiseren.

Mijn sessie ging over ASP.Net AJAX Extensions. Hierbij nog even een paar belangrijke punten waar je rekening mee moet houden:

  • Er zijn twee manieren om delen van je pagina te updaten:
    1. Via een updatepanel
    2. Via webservices en Client Script(Javascript)
  • Updates via een updatepanel doorlopen wel de volledige Page Life Cycle.
  • In een Updateprogresscontrol kan je code plaatsen dat de postback annuleert. Dit stopt echter alleen het proces aan de client kant en houdt feitelijk alleen in dat de pagina update niet wordt uitgevoerd. De server-side verwerking wordt volledig uitgevoerd.

Downloads:

Comments [0] | | #