Webservice Applicationpool

时间:2009-07-24 01:37:13

标签: asp.net web-services iis ssis

我有两个不同的Web服务(在本地计算机上运行)并指向一个应用程序池(1.我可以这样做吗?是否有任何性能问题?)。我对应用程序池的工作方式知之甚少。  另一个.Net应用程序正在使用两个web服务,但是通常一个web服务没有响应.s应用程序中ssis包内部调用的内容。 可能是什么原因以及如何确保它始终响应,有没有更好的方法来改善性能?

如果遗失或有任何进一步的信息,欢迎评论

2 个答案:

答案 0 :(得分:5)

是的,您可以将多个Web应用程序用于同一个应用程序池。

这是一个性能问题吗?如果它真的是高流量或是错误的代码,那么也许。

应用程序池允许将站点推送到不同的进程,从而降低每个进程影响另一个进程的风险。如果一个应用程序池包含具有内存泄漏的应用程序/ Web应用程序,则泄漏将仅影响该特定进程,至少直接影响该特定进程。每个流程都可以通过时间或系统参数进行回收,从而降低处于不良状态的风险。

性能?应用程序池的另一个好处是能够同时运行多个实例(将每个应用程序放在自己的池中时类似的事情)。这样做的好处是可以一次处理更多请求。缺点是您不能使用进程内会话状态,并且每个进程实例都会复制您的应用程序状态。您需要考虑在会话中保留多少“东西”以及如何实现缓存方案,但是,它有可能为Web应用程序提供更大的可伸缩性。

你提到调用SSIS ...我假设这是一个长期运行的服务,所以你可能希望将对该进程的调用推送到可以在Web服务请求之外处理的某种队列。 MSMQ可能适合您。如果使用这样的队列,您将启动代码的运行,然后检查调用的状态以查看是否已完成。

答案 1 :(得分:2)

我同意格雷格奥格尔的观点,但我认为还值得一提。如果存在任何问题,将应用程序拆分为多个应用程序池还可以为您提供额外的好处。如果您拆分了各种应用程序,您可以具体说明哪些应用程序池与w3wp.exe在需要时的进程相关。比如说当w3wp.exe进程占用你的cpu的98%时。