Win7自托管WCF .net应用程序使防火墙规则不正确

时间:2011-03-31 00:05:53

标签: c# wcf firewall self hosted

我有一个在我的.net应用程序中运行的自托管WCF服务。

正确配置防火墙后,该服务正常运行。但是,首次运行应用程序时添加的默认规则未正确配置,需要用户进行更改。当应用程序首次在计算机上运行时,它会显示“Windows安全警报”对话框,其中显示消息“Windows防火墙已阻止此程序的某些功能”,并提示“允许访问”。如果用户选择“允许访问”,则Windows会向防火墙添加应用程序例外。

以上所有行为完全符合预期,正是我想要的。

问题是添加到防火墙的规则不正确,并且无法使WCF服务正常工作。在规则属性的“程序和服务”选项卡上添加的规则“此程序”列出了我的WCF自托管exe。这对我来说似乎很合适。

但是,如果我将此设置更改为“所有符合指定条件的程序”,则规则正常。

所以,我的问题分为两部分。

a)为什么我的应用程序的流量在正确明确支持EXE流量时被此规则阻止了?

b)如何解决问题?我可以在应用程序中更改某些内容,以便将规则添加到我的exe中,或者正确地允许流量到我的exe中吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

a)因为它不是你的exe而是WCF守护进程进行入站调用,通过指定任何进程,你说在端口XXX上侦听的“任何进程”将被添加到例外列表中。因此,deamon进程被添加到例外列表中。

b)您可以将wcf守护程序进程添加到例外列表,或者将exe的端口添加到例外列表中。 如果你使用net.tcp绑定,deamon porcess是$ frameworkDir / SMSvcHost.exe