2010-03-19 40 views
1

我正在创建一个包含大量服务的分布式应用程序,并且正在寻找允许我轻松创建和管理大量服务的技术。ASP.NET MVC作为SOA的服务主机,如架构

我知道管理和部署Windows服务并不好玩。我正在考虑使用ASP.NET MVC作为我的服务的服务主机,其中每个控制器操作本质上是一个服务,我可以通过简单的HTTP请求和响应与服务进行通信,而不必处理复杂性,如果我使用WCF 。

服务需要隔离,并且据我所知asp.net请求是隔离的,即如果请求抛出异常,它不会影响其他正在运行的请求。

但我仍然有关于服务管理的问题。怎样才能看到哪些服务正在运行,停止和恢复服务。此外,ASP.NET MVC是被动的,即他们只对请求做些事情,但如果我想要服务自己启动工作呢?

+0

我碰到MSE(管理服务引擎)(http://www.codeplex.com/来到servicesengine)。它似乎能够托管WCF服务,它可以替代ASP.NET MVC服务。但是,我不知道它是否可以托管“主动”服务,即独立运行的服务。我会继续寻找并让你知道。 – duraid 2010-03-25 15:42:18

回答

0

很多问题都包裹在一个。 :)

MVC是一种演示模式,作为设计服务主机的方式并没有多大意义。

也就是说,使用ASP.Net/IIS创建服务层的过程非常快速且容易,无需使用MVC(或Webforms)。事实上,您可以使用Visual Studio轻松生成用于在ASP.Net中存储服务层的所有功能。

Webservice请求确实作为单独的线程IIRC运行,所以它们将被隔离。

只要看到哪些服务正在运行,我不知道任何允许在IIS中进行这种报告的东西。您可能需要将更新写入数据库,日志或其他数据结构,然后创建一个UI以从中读取。

服务确实是被动的。你可以看看类似Quartz.Net的日程安排任务,但我不确定将它保持在IIS进程中运行的可靠性。这种工作的正确工具可能是Windows服务或控制台应用程序。

+0

这当然是一个很大的问题:) 我同意MVC是为演示文稿,但我选择它,因为它更接近请求/响应,然后网页形式,我认为我可以受益于它的功能喜欢安全/验证比建立自己的。 – duraid 2010-03-19 22:51:12

1

我们使用ASP.Net MVC创建返回JSON结果的服务。我们在IIS中托管这些服务。

MS正在建立旨在承载WCF服务的服务器产品,你可以使用你的服务,请参见:http://samgentile.com/Web/dublin/windows-server-appfabric-formerly-dublin-beta-2-is-available/

+0

感谢您的联系。 AppFabric与我想要的非常相似,但是我正在寻找更轻的解决方案,并且AppFabric似乎有很多我不需要的基础结构。 我对你的ASP.NET MVC Json服务感兴趣,如果你能够监视它们以知道它们是否还活着,等等。 – duraid 2010-03-19 22:48:55

+0

你必须使用与你的机器不在同一台机器上的东西来监控它服务。如果整个机器停机,您将不会收到任何警告。你可以编写一个程序来ping这个服务,如果有错误,它会给你发一封电子邮件,等一分钟,然后重新开始。 – 2010-03-19 23:35:32