独立模式下基于WCF的WinForms应用程序

独立模式下基于WCF的WinForms应用程序,winforms,wcf,architecture,soa,n-tier-architecture,Winforms,Wcf,Architecture,Soa,N Tier Architecture,我有一个windows应用程序,它的业务逻辑层作为WCF服务实现。此服务当前托管在IIS上。我想知道,如果有一种方法,当服务不可用/不可行时,我可以选择以独立模式运行应用程序。在正确的设计中,业务逻辑确实不应该直接实现为WCF服务-它应该抽象为一个单独的程序集,原因与您的一样,WCF包装器应该只引用它。我猜你在这个设计中没有发言权 如果您有权访问WCF程序集,则可以将它们与独立应用程序一起分发并引用它们,然后调用这些WCF操作,而无需将其作为服务激活。如果业务逻辑都不依赖于任何WCF激活的特性,

我有一个windows应用程序,它的业务逻辑层作为WCF服务实现。此服务当前托管在IIS上。我想知道,如果有一种方法,当服务不可用/不可行时,我可以选择以独立模式运行应用程序。

在正确的设计中,业务逻辑确实不应该直接实现为WCF服务-它应该抽象为一个单独的程序集,原因与您的一样,WCF包装器应该只引用它。我猜你在这个设计中没有发言权

如果您有权访问WCF程序集,则可以将它们与独立应用程序一起分发并引用它们,然后调用这些WCF操作,而无需将其作为服务激活。如果业务逻辑都不依赖于任何WCF激活的特性,那么这将相当难看,但会起作用


编辑重新评论:您可以拥有多个服务主机和端点,并在WCF中保持相同的契约(“接口”)。也许您想添加一些公开端点的功能,并在应用程序中以这种方式访问操作。

在正确的设计中,业务逻辑确实不应该直接实现为WCF服务-它应该抽象为单独的程序集,原因与您的一样,WCF包装器应该只引用它。我猜你在这个设计中没有发言权

如果您有权访问WCF程序集,则可以将它们与独立应用程序一起分发并引用它们,然后调用这些WCF操作,而无需将其作为服务激活。如果业务逻辑都不依赖于任何WCF激活的特性,那么这将相当难看,但会起作用


编辑重新评论:您可以拥有多个服务主机和端点,并在WCF中保持相同的契约(“接口”)。也许您想添加一些公开端点的操作,并在应用程序中以这种方式访问操作。

@Mike。谢谢你的回答。我不想直接引用业务逻辑程序集的原因是,我想让应用程序和服务之间的通信接口在这两种情况下保持通用。@Mike我想我无法准确地传达我的问题。也许我所寻求的解决方案会让事情变得更清楚。我在应用程序中嵌入了一个http服务器,以便在未指定远程服务器的情况下托管服务。我不想直接引用服务程序集或传递的对象。是的,所以你做了self-host:)酷。@Mike。谢谢你的回答。我不想直接引用业务逻辑程序集的原因是,我想让应用程序和服务之间的通信接口在这两种情况下保持通用。@Mike我想我无法准确地传达我的问题。也许我所寻求的解决方案会让事情变得更清楚。我在应用程序中嵌入了一个http服务器,以便在未指定远程服务器的情况下托管服务。我不想直接引用服务程序集或传递的对象。是的,所以你做了self-host:)酷。