【问题标题】:Multi-Threading Design Question for ASP.NET MVC 2ASP.NET MVC 2 的多线程设计问题
【发布时间】:2011-04-22 16:24:21
【问题描述】:

我正在开发一个与旅游相关的网站,这是我的高级架构:

ASP.NET MVC 2 (Presentation Layer) 
Services Layer 
Repository Layer communicating with external J2EE Services

对于特定的用户搜索场景,我需要调用 J2EE 服务 4 到 5 次(独立操作),将所有响应合并为一个响应,并将其交给 Controller 以便能够呈现给用户。

处理这种情况的最佳方法是什么?我应该使用 MVC 2 的 AsyncController 功能还是在我的服务层中实现一些多线程逻辑?

【问题讨论】:

    标签: asp.net multithreading asp.net-mvc-2 asynccontroller


    【解决方案1】:

    【讨论】:

    • 感谢 Xaqron。目前我的业务服务层只支持同步操作。将其转换为支持异步操作需要什么?我对 J2EE 服务没有任何控制权,我希望不需要对该层进行任何更改。
    • 您不需要与您的 BLL 做任何事情。你的 MVC 代码应该是异步的。
    • 但是我在网上阅读的大部分文档都说暴露方法的 BLL 需要实现基于事件的异步模式。请。见以下链接:msdn.microsoft.com/en-us/library/…
    • 设计没有错或对,更多的是最佳实践。根据具体情况,您可能会做一些对任何其他情况都不利的事情。你提到,你没有访问 BLL 的权限,我说没关系,在顶层实现异步。
    • Xaqron,目前我在我的 Controller::PricingResponse response = _pricingService.GetComponentPricing(request); 中调用我的 BLL 方法,在我将控制器更改为 Async 后,我可以继续在 GetRatesAsync() Action 中以相同的方式调用它吗?然后 AsyncManager.Parameters["response"] = response;这行得通吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多