Using JSON.NET as a default serializer in WCF HTTP/Web/REST (vNext)
Whitepaper: The ins and outs of data type interop between .NET/WCF and Java – add it to your [web] services tool belt

Enabling PING (aka ICMP) on Windows Azure roles

By default any web or worker role instance in Windows Azure has ping functionality disabled. I you want and need to ping your machines via ICMP (e.g v6) you need to enable it by opening up the respective firewall ports.

Since Windows Azure SDK 1.3 this is quite easy to do with a custom startup taks (see http://msdn.microsoft.com/en-us/library/gg456327.aspx for details on the topic).
Your startup tasks could run a script which uses the netsh command like this in an elevated context:

netsh advfirewall firewall add rule name="ICMPv6" dir=in action=allow enable=yes protocol=icmpv6

The startup task can be defined in the ServiceDefinition.csdef file:

<ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
   <WebRole name="MyWebRole">
      <Startup>
         <Task commandLine="EnablePing.cmd" executionContext="elevated" taskType="simple">
         </Task>
      </Startup>
   </WebRole>
</ServiceDefinition>
Hope this helps.
 

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Brett Robichaud

But would this allow external traffic to ping a compute instance or does this only affect traffic within the Microsoft datacenter? I assumed one would need to tell the Azure load balancer to allow that traffic through by opening an endpoint binding. Am I incorrect?

Christian Weyer

Hi Brett,

yep. Actually the above described does *not* work. Sorry.

The comments to this entry are closed.