2011-06-07 66 views
2

我一直在使用这个站点很长一段时间,通常可以通过浏览问题和跟踪标签来理清我的问题。但是,最近我遇到了一个很难查询的问题 - 我希望你们中的一些人可以分享你的意见。过滤ASP.NET Web服务中的数据

由于我的问题有点难以适应单行,在标题中,我会尝试给我一些我遇到的问题的更多细节。因此,正如标题所示,我需要过滤或限制一些响应数据,我的标准ASP.NET基于Soap的Web服务在调用各种Web方法时返回。 Web服务用于返回其他系统(数据存储库或多或少)所使用的数据,其中客户端今天能够指定几个参数来说明如何过滤数据并返回一组完整的数据。

好吧,我认为,只需在现有的网络方法上添加额外的过滤选项,这需要更多的过滤应用,在服务器端进行调整,我们都准备好了 - 好吧,不幸的是,比这个更棘手一点。

我面临的问题是我正在处理生产环境中运行的Web服务,需要对其进行扩展,以便可以将其他筛选器应用于正在调用的现有Web方法,而不会影响调用已经由客户使用其客户存根使用的其他系统制造。这是我有点困扰,因为我似乎无法找到扩展当前Web服务的“正确解决方案”。

今天,过滤器作为自定义数据结构发送,其中包含关于哪些数据应该过滤的信息,但我不确定是否可以简单地向客户端添加更多信息而无需破坏代码?我的一位同事建议我可以实现一个解决方案,在该解决方案中,我将扩展服务器端的web.config,以保留一个部分,其中包含哪些数据应该被排除(过滤掉)的细节,但是我没有找到成为一个长期可行的解决方案 - 而且我不相信有这样一种选择的客户,因为这在某些时候可能会出错。因此,我正在寻找的解决方案是我可以将“第二个过滤器”应用于我向客户请求的数据的一种方式,所以不必获取全套数据,只应该给出一小部分,它在该过滤器可以很容易地修改,并且不能影响当前的客户端调用。

关于我应该如何解决这个问题的任何建议?

谢谢! 亲切的问候, E.

+2

是有原因,你可以;吨只是创造新的客户使用一种新的方法?新方法会接受额外的过滤器数据? – 2011-06-07 19:31:36

回答

1

一个很常见的做法是创建应用程序的另一个实例或使用部分url来表示它们连接到的端点的版本,也许虚拟目录是日期。这种方式旧的电话将转到旧的API,并且新的电话将进入新的API。

http://api.example.com/dostuff 

VS

http://api.example.com/6-7-2011/dostuff 
+0

感谢您的回复!在我阅读您的答案后,我更深入地了解了Web服务版本,这似乎是正确的选择。所以,再次感谢您的快速反应,我会开始讨论实施细节。 – 2011-06-08 08:04:53