我正在尝试一些在本地运行但在我的云实例上不起作用的代码。我假设它可能与权限相关,但我还无法修复它。这是我在本地调试我的工作者角色时的工作原理,但是当它发布时没有任何反应(现在正在暂存)。
psi.Verb = "runas";
我也尝试过使用
INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
inboundRule.Enabled = true;
inboundRule.RemoteAddresses = ip;
inboundRule.InterfaceTypes = "All";
inboundRule.Protocol = (int)NetFwTypeLib.NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_ANY;
inboundRule.Name = "BlockU Part 2";
//inboundRule.Profiles = currentProfiles;
inboundRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
// Now add the rule
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(inboundRule);
但这也没有帮助。
最后我尝试了防火墙api。这也在本地工作,但在最后一行上抛出了访问被拒绝错误。
{{1}}
答案 0 :(得分:2)
我找到了azure forums,我需要启用我的辅助角色以提升的权限运行。通过将以下属性添加到WorkerRole元素
,可以在ServiceDefinition.csdef
文件中完成此操作
<WorkerRole name="CloudService.Worker" vmsize="ExtraSmall"
enableNativeCodeExecution="true">
并且还添加了
<Runtime executionContext="elevated" />
WorkerRole元素中的元素。
两组代码都已成功运行配置更改。
答案 1 :(得分:0)
我在msdn博客中发现了一篇有趣的帖子,它使用了一个简化防火墙规则配置的库,可能会解决你的问题,
在
上