2010-02-01 72 views

回答

0

正如我们已经写了一个自定义的主机和用了好几年,使之成为真正的应用服务器,我将分享一些我们不得不面临的挑战。如果要管理所有细节并将NT服务视为真正的服务主机,那么创建一个将WCF服务作为NT服务管理的自定义主机是一项非常具有挑战性的任务。挑战从管理多个Appdomains(每个服务一个)开始,管理服务的状态,启动时间,从IDE部署,最糟糕的是激活。你有没有考虑过如何实现?如果您没有此功能,则意味着您的所有服务都将始终处于活动状态并存储在内存中。 IIS和Appfabric做得非常好,相信我,这很容易实现。另一个挑战性的部分是管理这个主机的UI和一个可以管理多个主机的UI(在不同盒子上运行的NT服务)。你需要一个发现代理实现?最后,如果您想要以相同的方式管理在自定义主机,IIS和App结构中运行的服务,那该怎么办? 在做这样的实施之前要考虑一下,因为范围可能会隐藏在你身上。

+0

谢谢哥们......我们终于从这个要求由于我们的技术人员不良架构决定摆脱作为项目得到了报废。我也调查了很多,我同意这是最复杂的要求之一,它也没什么意义。 – user263606 2012-07-10 14:28:55

0

我在这里做类似的事情。

  • 创建Dictionary<key, ApplicationDomain>收集到你的主程序
    • Key:独特的东西对每个应用领域,如GuidSystem.Type
  • ApplicationDomain类公开的内部属性来访问您的AppDomain代理(即它继承了MarshallByRef类)
  • 载入你的WCF主机置于主程序,所以你会得到该集合访问
  • 每让您的服务获得一些访问权限,您只需取得该密钥,访问您的代理服务器并在您的服务托管商处执行任何您想要的操作。

关键点:你的服务必须能访问所有服务的主机上。