November 2007 - Posts
"Flames to dust... lovers to friends.... why do all good things come to an end... come to an end..." I just walked into my office humming one of my favorite Nelly Furtado songs and yes, one good (or best rather) thing in my life is about to end today. Although this is not a secret among my best friends, for all the others who've been reading this blog; today I'm retiring from thinktecture family.
It has been a wonderful ride through out the past three years or so and I'm truly gifted to work with a fantastic team like this. At thinktecture for the first time in my professional life I could find things I like to live with.
However, just being a part of this rapidly changing world, lately I found that it's time for me to say good bye. So I'm leaving this virtual desk with lot of remarkable memories (And I only have good memories at tt
).
I wish all the best to thinktecture and I'm certainly looking forward to see them in our future encounters very soon
.
Last but definitely not least during the past few years I and my family made really good family friends and that will remain unchanged for the rest of our life.
thinktecture Rocks!
PS: About next stop in my professional career: I really hope that it deserves a dedicated post in my new blog (http://geeksdiary.com) as it's also going be full of escapades!!!
WCF comes with handful of tracing and logging options. We can just enable it with a few lines in the config and we are good to go. Furthermore the SDK comes with a handy tool svctraceviewer.exe (for wimps
).
However, out-of-the-box trace output gives us access to the data/activities only in the WCF world. For example, at some point we might want to look at the HTTP headers sent/received by the application or we might want to check out the transport level frames are written properly in a custom transport. Although this is quite easy to do with a tool like WireShark or Ethereal, it still wants us to deploy the client and the service applications in two different machines (either virtual or physical).
I'm not done yet. In the end, under the covers, WCF also uses the well-known System.Net APIs at the transport level. Therefore we can just use System.Net tracing settings to capture the wire level traffic right from the dev box.
For example, to capture the http traffic we can use the following config settings.
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="System.Net.HttpListener">
<listeners>
<add name="FooNetTraceListener"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="FooNetTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\dev\src\lab\wcf\WireLevelTracing\Logs\FooNetTrace.log"
traceOutputOptions="None"/>
</sharedListeners>
<switches>
<add name="System.Net.HttpListener" value="Verbose"/>
</switches>
</system.diagnostics>
If you want to capture the traffic for a built-in tcp transport or a custom transport using System.Net.Sockets API; change to trace source to System.Net.Sockets.
Dear fellow developer,
I would like to proudly announce that from this point onward this will be my home in the cloud. Ever since I started
blogging I've shared my thoughts at two places (buddhike.net and my thinktecture blog respectively). Therefore please bear with me if you happen to end up at a broken link. However if you could take a minute to send me a note regarding anything like that, I'd be more than happy to help you to relocate (or may be re-post if that's really important) the missing content.
On the bright side, I really hope that geeksdiary.com will now be my permanent online residence
.