2

两周前,我需要一种方法来将 wcf 服务与运行在同一台计算机上的 Windows 服务进行通信。Windows 服务必须从外部源获取数据并与 wcf 服务(托管在 IIS 中)共享,后者必须在客户端发出请求时提供数据。我选择用ipc来做。

我做到了,现在windows服务是ipc服务器,wcf服务是ipc客户端。这很顺利,但我认为我这样做是错误的,因为要使其正常运行,必须使用 ASPNET 帐户执行 Windows 服务,为此必须分配 ASPNET 密码帐户,当我这样做时,IIS 无法正常工作.

我正在考虑不同的选择,但在所有这些选择中,问题仍然存在。一些想法?


编辑:

我需要的是一个公开的系统,在 IIS 中托管的 Web 服务中,通过 telnet 从另一个旧系统获取数据,有点不稳定。这第二个系统的响应速度有多慢我选择在 Web 服务和旧系统之间放置一个进程(Windows 服务)。Windows 服务必须保存从旧系统收集的数据,当 wcf 服务要求它通过 ipc 一次性提供所有数据时。

4

3 回答 3

1

为什么windows服务需要以ASPNET用户身份运行?那是因为您使用的 IPC 连接需要来自调用者的身份验证吗?

另一种选择(如果您可以控制 Windows 服务代码)也将其设为 WCF 服务(在 Windows 服务中使用 ServiceHost)。如果您需要类似 IPC 的性能,IIS 服务可以使用 NetTcp 或 NetNamedPipe 绑定连接到 Windows 服务。

于 2009-03-03T02:12:18.120 回答
0

为什么不直接创建另一个具有与 WCF 服务和您的其他服务运行的 ASPNET 用户相同的权限集的帐户?这样,您就可以控制密码。

于 2009-03-02T16:08:00.380 回答
0

理想情况下,windows 服务应该作为 WCF 服务运行,这样客户端很容易与它通信。

下一个问题是“客户端”需要成为 WCF 服务的天气。如果此客户端需要为其他应用程序提供服务,那么它是合适的,否则它可能不是必需的。我对您的系统知之甚少,所以由您决定什么是最好的!

于 2009-03-03T02:17:57.387 回答