【发布时间】:2012-03-23 03:50:11
【问题描述】:
好的,所以我已经构建了我的 WCF 服务并且它的功能非常好!但是,我现在开始将它实现到我们预先存在的软件中,我立即遇到一个问题,我是否只使用代理生成的代码并摆脱我最初使用的 dll?还是我保留两者,并在两者之间做出非常明显的区分?
我所说的保持区别的意思是,拥有一个代表同一个用户对象的 ServerUser 和一个 LocalUser 属性。但是,如果应用程序服务不可用,我的 LocalUser 属性将通过应用程序最初运行的 dll 填充。
我对这种思维模式的主要原因是,如果我删除我的 dll,我就会遇到单点故障。如果由于某种原因我的 ServiceHost 没有启动并运行,但数据库服务器是,我希望我的用户仍然能够完成他们的工作。新的 WCF 实现使用的功能不依赖于员工完成他们的工作。 WCF 服务提供的更多便利。此外,在服务中构建这种逻辑将允许在非 IIS 托管环境中更容易地进行服务修改。
另外,有没有办法在服务上构建逻辑,以便当我为客户端拉下代理代码时,它只知道在 ServiceHost 不可用时手动访问数据库?如果这是可能的,我想我所有问题中的 90% 都会消失。
提前谢谢你!
【问题讨论】:
-
我认为我需要更多信息才能做出好的回答,但我认为拥有两条路径(直接到数据库和通过服务)并不是一个好主意——只使用服务和隐藏数据库层
-
您始终可以提供您创建的手动代理,它可以做任何您想做的事情。