WCF和配置上有许多可用资源(程序化和通过app.config)。但是,我没有看到有关此配置的实际管理的良好资源,特别是在生产环境中。
WCF功能强大,因为框架允许通过app.config文件进行配置,这样您就可以调整各种设置,而无需重新编译代码。
安装WCF客户端时,如何轻松配置客户端以指向正确的服务器?这可能是我在安装后可以考虑配置的最常见的事情。对于某些上下文,假设我发运的产品包含服务器组件和客户端组件。客户可以在任何地方安装。虽然xml文件对于开发后配置非常强大,但它根本不是用户友好的。鉴于配置文件中可能有几十个端点,管理员或最终用户是否必须手动更改所有端点?我知道我可以通过编程方式完成所有工作,但后来我基本上正在重新实现所有开箱即用的管道。
上面的问题,更通用的是:如何在不重新实现框架提供的内容的情况下,通过某些基本UI简化WCF配置?
答案 0 :(得分:3)
如果您想要用户友好的安装,您将使用一些安装程序,您只需设置一些配置值。检查作为Visual Studio一部分提供的安装程序项目或更强大(更复杂)WiX。如果您没有安装程序,则您已经选择了用户应该手动配置所有内容。
如果您唯一的问题是服务地址并且您计划将服务和客户端部署到单个LAN,您还可以添加WS-Discovery(available in WCF 4),客户端可以在网络上找到服务。
答案 1 :(得分:1)
如果您想要/创建一个很好的用户界面来编辑这些设置,那么该用户界面中的用户输入需要保存在某个地方,您必须在客户端上创建服务调用或设置托管时使用它服务器上的服务。我个人会存储在数据库中,并将使用它们以编码方式在runtine配置WCF端点。
这也有一些优点,全部备份数据库备份,远程连接和检查,没有风险覆盖更新等文件。
如果您的设置/应用程序没有数据库,那么配置文件也可以,这可能是唯一的方法,无论如何我都不会在注册表中保存任何内容。
答案 2 :(得分:0)
您可以使用settings framework存储端点地址。您可以轻松阅读和保存设置,它们将存储在%APPDATA%
位置,因此您无需担心权限。您只需要一个小配置UI,用户可以在其中输入服务器名称。通过向服务器添加简单的Hello服务来验证该配置,并尝试在该UI中访问该服务。因此,如果服务器地址正确,您可以立即向用户提供反馈。
另一种选择是实现发现协议。相关问题是here。