在开始大量工作之前,我需要指导。
我们在单个iis上暴露了大量的wcf服务(大约500个)。目前这些服务使用相同的绑定但具有不同且冗长的服务合同(我们有大约15000个操作合同!)。我的任务是建立一个适用于所有服务的通用处理管道。这样我们将有一个钩子来控制这些当前的自治服务。通过这些钩子,我们将有机会控制事务行为,应用超时等等。
对于此任务,作为初始命题,我正在计划一个代码重新生成过程,该过程将这些现有服务映射到单个服务。现有服务将通过以下单一操作简化为单一服务:
[OperationContract]
ExecutionResult Execute(Request req);
作为这项服务的所有者,我将面对所有请求,然后继续定期执行。
由于每个服务请求都独立于另一个,我计划使用反射来传输有关要执行的实际操作合同的信息。更具体地说,我计划将实际wcf服务的MethodInfo和ParameterInfos放入Request对象。在我的服务中,我将使用这些反射数据调用实际服务。实际操作契约的返回类型,如果不为null,将被放入ExecutionResult。
你认为这种方法存在缺陷吗?正如我所说,这是我对这个问题的初步建议。有没有人以前执行过这种任务?任何帮助/想法都将受到高度赞赏。