2011-03-25 72 views
0

我需要建立一个代理(也许是一个坏的描述),从第三方接收XML文件,保存它,发送到另一个第三方,获得响应回传给原来的第三方。我们称整个过程为“单位”。ASP.Net webservice/asmx/ashx/whatever编程

我应该使用webservice吗?一个通用处理程序?还有别的吗?

我可能必须每秒做20个“单位”,但我知道每个“单位”可能会跨越30秒到1分钟,所以真的,我的意思是我需要能够有1200个这样的“单位“在我上面描述的过程的所有不同阶段同时运行。

就文件保存而言,我最终希望把它放到数据库中,但我会想象写入文件比将数据实际保存到数据库更快,所以我只需要另一个进程几乎没有时间关键,因为它抓取文件并将其插入到数据库中,以方便自己。

“应用程序”将只包含1页,它将在SSL下运行。在任何时候,这可能是此服务器上唯一确保这个小流程不是瓶颈的事情。

.Net中的内容将是一个很好的(快速且可扩展的)方式吗?就硬件而言,我对硬件的需求没有任何有效的限制 - 所以如果能够保证没有瓶颈,我可以使用尖叫机器。

+1

你说一个单位可能需要30秒,有多少时间是通过网络传送的,处理中有多少? – Geoff 2011-03-25 17:01:30

+0

另外,您实际传输了多少数据? – NotMe 2011-03-25 18:33:38

+0

几乎所有的人都会等待第二方第三方回应。我的代理只会收到文件(10k或更少),将其保存到磁盘,然后将其传递并接收响应,然后将响应转发给调用客户端。 – 2011-03-25 18:54:40

回答

2

由于Web服务是基于XML的,你需要考虑的是,你可以用“中的XML XML”结束。但是,我会说使用webservices的一部分是一个好方法。主要是因为它兼容,易于使用和易于理解(适用于未来的维护人员)。

然而,有些使用较少的CPU /内存/带宽的替代品。 WCF提供了几种模型来解决IIS和独立进程和传输类型下的运行问题。

就我个人而言,我是通过TCP进行普通旧式二进制传输的粉丝。 REST可能是一种兼容的方式(例如前端代理/缓存),它基本上为您提供了一个很少开销的二进制传输。

我也喜欢把肮脏的工作留给IIS,所以我避免了独立的WCF应用程序。我认为IIS比我能轻松完成的更快,更稳定。

也许我的问题high concurrent load可以帮助。