在单机模式下
问题描述:
基于WCF的WinForms应用程序我有了一个WCF服务中实现它的商业逻辑层一个Windows应用程序。此服务目前托管在IIS上。我想知道,如果有一种方法可以在服务不可用/可行的情况下以独立模式运行应用程序。在单机模式下
答
在适当的设计,业务逻辑实在不应该被实现为直接WCF服务 - 它应该抽象到一个单独的程序集的原因,就像你的,和WCF包装应该不是简单地引用它。我猜你在这个non-orthogonal设计中没有发言权。
如果您有机会获得WCF组件,你可以用你的独立应用程序分发和引用它们,然后调用到这些WCF操作而不激活它作为一种服务。这将是相当丑陋的,但它会工作,假设没有业务逻辑依赖于任何WCF激活的功能。
编辑评论:您可以有多个服务主机和端点,并在WCF中保持相同的合同(“接口”)。也许你想添加一些self hosting暴露出一个named pipe端点,并访问业务应用程序中的那样。
@Mike。谢谢你的答案。我不想直接引用业务逻辑程序集的原因是因为我希望保持应用程序和服务之间的通信接口在两种情况下都是通用的。 – 2009-11-14 19:09:45
@Mike我认为我无法准确地传达我的问题。也许我提出的解决方案将会明确。我将http服务器嵌入到我的应用程序中,以便在未指定远程服务器的情况下托管服务。我想不直接引用服务程序集或传递的对象。 – 2009-11-20 05:41:45
是的,所以你做了自我主持:)很酷。 – 2009-11-20 14:57:32