1

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

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

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

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

但是,如果我将此设置更改为“所有满足指定条件的程序”,则该规则可以正常工作。

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

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

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

谢谢你的帮助。

4

1 回答 1

1

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

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

于 2011-04-18T09:11:22.450 回答