Friday, May 29, 2009

Food for Thought -2


"Sometimes we love with nothing more than hope. Sometimes we cry with everything except tears..." - Lin, Shantaram

Monday, May 25, 2009

Food for Thought - 1


Karla once said - "Mistakes are like bad love, the more you learn from them, the more you wish they had never happened..."

Friday, May 15, 2009

WCF Addressing/ Multiple endpoints

As people who are working in WCF know very well, one of the most important advantages of WCF is that we can expose the WCF service using different endpoints and each endpoint can be given a different URL. This enables us to let the clients use the same service with different security settings.

For example:

configuration
system.servicemodel
 services
   service name="”MyService”"
host
       baseaddresses
         add baseaddress="”http://localhost/MyService/service.svc”/"
 /add
     /baseaddresses
 
endpoint address="”/basic”" binding="”basicHttpBinding”" contract="”IMyService”/"
     endpoint address="”/secure”" binding="”wsHttpBinding”" contract="”"


   /endpoint
 /endpoint
/host
/service

In the above example, We have a service exposed with 2 different bindings
1. basicHttpBinding
2. wsHttpBinding

and we are using 2 different URL’s for each of this.

Now, there was an integration issue in our project. Another offshore team (read another company) was trying to connect to our service and it was not happening. So they came to me as I was the responsible for the WCF service.

Their genuine doubt was that, they were trying to explore to the URL: http://localhost/MyService/service.svc/secure or /basic in a browser and it was not happening. So they complained that the service was not working well.

It made me think, for quite sometime but the answer is very simple, the endpoint address http://localhost/MyService/service.svc/secure expects a SOAP message, and when it receives a SOAP message it can process them easily and send back the result. But all the browser is doing is sending a HTTP GET request which our service does not understand.

So how many ever endpoints you have in your service, you just have only one WSDL and that can be downloaded from the base address. Now the base address is the address where you have hosted the service, here its http://localhost/MyService/service.svc. For creating the client and proxy classes we should use this URL but for connecting to the particular endpoint we should use the URL of the endpoint.

Friday, May 1, 2009

Thought Bubble - 5



.....chila ishtangal anganeyaanu... ariyaathe ariyaathe nammal ishtapettu pokum... oru nokku kaanan, onnu samsaarikkan okke vallathe kothikkum... ennum swantham maathram ennu veruthe karuthum... oduvil ellam veruthe aayirunoo ennu thirichu ariyumbol... ullinte ullil evideyengiulm nammal a ishtathe moodi marakkum... pinneedu epozhenkilum randu thulli kannerinte nanavode aa ishtathe nammal orkum... appozhum hridayam vallathe kothikunnudaavum... "aval entethaayurunnuvengil!!!"