1

简单的问题。我正在为具有附加数据库连接的应用程序进行概念验证,因此我将创建一个 WCF 服务来环绕数据库。多用户环境会将此服务安装在中央服务器上,并在其本地系统上安装客户端应用程序。这些用户将不得不自动处理防火墙问题,因此这是可以接受的。

但是单用户环境将在单个系统上运行服务和客户端应用程序。服务主机目前还没有确定的形状,但它很可能会托管在应用程序本身或作为 Windows 服务。

不幸的是,客户端应用程序是一个 WIN32 Delphi 应用程序,它需要一种简单的方式来访问该服务。优选地,单用户版本应该使用与多用户版本相同的技术来访问服务器,这意味着它的行为类似于 SOAP 客户端,具有导入的 WSDL 并转换为 Delphi 代码。

仍然不是问题,但我必须考虑在此设置中可能遇到的问题,其中最重要的问题是:可能的防火墙关闭了连接端口。

那么,有没有人知道在这个单用户环境中可能出现的任何防火墙问题?

4

2 回答 2

2

您还没有提到您正在使用哪个 WCF 通道 - 我将假设 basicHttpBinding。通常,如果您的本地服务使用自托管绑定到 127.0.0.1,并且机上客户端以这种方式访问​​它,那么您应该没问题。我知道没有防火墙会与您的环回适配器一起使用。但是,如果您将服务绑定到机器的 IP,您可能会遇到防火墙的乐趣。

如果您在两端的客户端上都有 WCF 3.5(抱歉,我对 Delphi 一无所知),请尝试使用netNamedPipeBinding

于 2009-12-10T09:39:45.147 回答
1

您没有提到您使用的是哪个版本的 Delphi,但我曾经很难让 Delphi 2005 使用basicHttpBinding. 由于它WSDL被分成许多页面,Delphi 中的 SOAP 导入向导无法理解它。我最终为 Delphi 客户端编写了一个围绕 WCF 服务的 ASMX 包装器。

于 2009-12-10T09:51:15.523 回答