First I thought that you would only require elevation. I quickly wrote an application to test this theory.
Running the application as normal user, I got the same error. I then restarted my IDE as an administrator and tried again. This time I got the error "Not Yet Implemented". This was using .Net4.....
Why Microsoft says not yet implemented is beyond me.
Question is, why do you need to disable the firewall as this defeats the purpose of the firewall in the first place. You can however add an exception to the firewall.
Here is a piece of my code that I use:
public void OpenPort(string Name, int Port, NET_FW_IP_PROTOCOL_ protocol)
{
INetFwMgr fwMgr = (INetFwMgr)getInstance("INetFwMgr");
INetFwPolicy fwPolicy = fwMgr.LocalPolicy;
INetFwProfile fwProfile = fwPolicy.CurrentProfile;
INetFwOpenPorts openports = fwProfile.GloballyOpenPorts;
INetFwOpenPort openport = (INetFwOpenPort)getInstance("INetOpenPort");
openport.Port = Port;
openport.Protocol = protocol;
openport.Name = Name + Port;
openports.Add(openport);
fwMgr = null;
fwPolicy = null;
fwProfile = null;
openports = null;
openport = null;
}