问题标签 [asynccontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ASP.NET MVC2 从 jQuery 调用 AsyncController 方法?
我正在尝试学习如何在 MVC2 中使用 AsyncController,但是那里的文档/教程很少。我希望采用一种正常的控制器方法,该方法导出到 3rd 方服务的速度非常慢,并将其转换为异步方法。
原始控制器方法:
所以我创建了一个继承自 AsyncController 的新控制器:
然后从 jQuery 调用 Export 方法:
但结果是 404 not found 错误(找不到背景/导出)。如果我尝试调用 Background/Hello 或 Background/ExportAysnc,它们就会被找到。
我究竟做错了什么?
c# - ASP.NET MVC2 AsyncController 可以访问 HttpContext.Current 吗?
我正在尝试将此方法转换ExportTo3rdParty()
为使用 AsyncController:
但是 ExportTo3rdParty() 方法在多个地方使用了 HttpContext.Current(太多以至于无法更改 - 原始编码器没有使用足够的依赖注入)。例如,它调用 GetDefaultCurrency()。当通过 AsyncController 调用 ExportTo3rdParty() 时,这仍然有效吗?
我知道如果我使用 Thread.Start 我无法访问 HttpContext.Current。但是 AsyncController 呢?
testing - How to write tests for ASP.NET MVC 3 AsyncControllers with MSpec
I want to write a TaskController
for an ASP.NET MVC 3 application to some long running tasks, like sending a newsletter to the users of the site. I thought using an AsyncController
would be appropriate as sending emails might take a while, and I want to be able to save some state to the database when the task finishes running.
Being the properly brought up developer that I am (:þ), and being really into BDD, I naturally want to start off with a spec using MSpec.
Imagine my controller looks like this:
How does one go about writing specs for AsyncControllers? Imagine I start with the following specification:
Should I be calling the SendMailAsync
method for the test? I actually feels yucky.
How do I deal with the result from SendMailCompleted
?
.net - T4MVC 异步控制器
我最近使用 Nuget 安装了 T4MVC。在此之前我有一个旧版本可以正常工作,但是我有一个需要异步控制器的新要求。创建异步控制器后,由于与 t4 有关,我的项目无法编译。所以我使用 Nuget 进行了更新。
我现在遇到的问题是我的控制器工作正常,直到我最近刷新了 t4mvc。刷新我的代码编译后,但是当我调用异步操作时,它会在很长一段时间后返回并返回大量不正确的数据。此外,至关重要的是,如果我在控制器中设置断点,它就不再命中它们?!如果我将 DocumentController.generated.cs 恢复到最后一个工作版本,一切正常。
下面是我的旧 DocumentController.generated.cs 有效,而新的无效。
谁能帮我弄清楚这里发生了什么?我已经变得依赖 T4MVC,因为它非常好,但是我真的无法避免这些异步操作。
老的
新的
根据要求,这是我的 DocumentController 类的存根;
}
2011 年 7 月 4 日更新
嗨大卫,很抱歉花了这么长时间才回复你,我一直在研究其他一些工作。
我已经设法找出问题所在,希望您能对此有所了解,并可能创建一个修复程序。
如果您查看上面的第二个代码转储,这就是问题所在。问题是您已经创建了;
我不认为 MVC 抛出错误,但它是;
2011-04-07 15:59:38,921 [41] FATAL MvcApplication [(null)] - 发生未捕获的异常 System.Reflection.AmbiguousMatchException:在控制器类型“DocumentController”上查找方法“GetDocumentListCompleted”失败,因为以下方法: System.Web.Mvc.JsonResult GetDocumentListCompleted(Web.Gateway.DocumentMetaDataCollection) 类型为 WebUI.Client.Controllers.DocumentController System.Web.Mvc.JsonResult GetDocumentListCompleted() 类型为 WebUI.Client.Controllers.DocumentController 在 System.Web .Mvc.Async.AsyncActionMethodSelector.GetMethodByName(String methodName)
因此,据我了解,MVC 系统与我的代码和您创建的代码存在模棱两可的匹配。
如果我注释掉您上面的代码,那么一切都会再次正常运行。
你现在了解本质或问题了吗?可以修复吗?
干杯,
瑞安。
asp.net - ASP.NET MVC 2 的多线程设计问题
我正在开发一个与旅行相关的网站,这是我的高级架构:
对于特定的用户搜索场景,我需要调用 J2EE 服务 4 到 5 次(独立操作),将所有响应合并为单个响应并将其交给 Controller 以便能够将其呈现给用户。
处理这种情况的最佳方法是什么?我应该使用 MVC 2 的 AsyncController 功能还是在我的服务层中实现一些多线程逻辑?
c# - asynccontrols asp.net 错误创建控件“对象引用未设置为对象的实例”
这是我的示例表格。我正在使用 asynccontrols 。网站编译良好,加载良好,工作正常。在设计器中无法查看任何内容。哈普?
autofac - Autofac、OrchardProject 和 AsyncControllers
我正在努力让 AsyncController 在 OrchardProject 中工作。我正在使用的当前版本是 2.2.4.9.0。
我有两个人关注我的代码: http: //www.pastie.org/2117952 (AsyncController),它在常规的 MVC3 vanilla 应用程序中运行良好。
基本上,我可以路由到 IndexCompleted,但我不能路由到 Index。我将假设我在整个项目的 Autofac 配置中遗漏了一些东西。
我认为配置在 global.asax 中:http: //pastie.org/2118008
我正在寻找的是一些指导,说明这是否是为 AsyncControllers 实现 autofac 的正确方法,或者是否有其他东西/其他地方我需要实现/初始化/等。
~丹
c# - 异步操作完成,但结果未发送到浏览器
我想实现一个网络聊天。
后端是双 WCF 通道。双通道在控制台或winforms中工作,它实际上在网络上工作。我至少可以发送和接收消息。
作为基础,我使用了这篇博 文,因此异步操作完成。
当我调试结果时,我看到消息都准备好发送到浏览器了。
但实际上没有发送任何内容。
检查提琴手,我看到了请求,但我从来没有得到回应。
我还必须将 SessionStateBehaviour 设置为只读,否则异步操作会阻塞整个页面。
编辑:这是 CheckForMessagesAsync:
这与引用的博客文章中的想法相同
EDIT2:顺便说一句,当什么都没有收到时,等待超时开始起作用,响应返回。所以它似乎在某个地方崩溃了。知道如何记录吗?
asp.net-mvc-2 - 我可以在以下场景中使用异步控制器吗?
我在 Asp.net MVC 中有一个应用程序,有时我想向用户显示一个模式对话框,该对话框将显示流程执行进度指示器。
幕后的过程进行了大量的数据库数据处理(基于现有数据,它生成大量结果记录,这些记录也被写回数据库)。过程可能需要很短的时间到很长时间(取决于现有数据)。
应用程序将异步启动此过程(通过 Ajax 请求)并以相同的方式显示进度。
问题
我已经阅读了一些关于异步控制器的信息,其中可以异步启动一个进程并通知它的结束,但没有进度指示,我不确定如何处理浏览器超时。就客户端而言,异步请求与同步请求相同。因此,客户将等待响应(据我了解)。主要区别在于服务器将以异步方式执行某些操作,因此它不会阻止其他传入请求。我实际上应该做的是:
- 发出一个请求,该请求将启动该进程并响应客户端 taht 进程已启动。
- 客户端会定期轮询服务器以获取进程进度状态,并立即以百分比值返回响应(可能为 JSON)
- 当进度为 100% 时,这意味着它结束了,因此客户会知道要请求结果。
我不相信异步控制器以这种方式工作......
问题是我不确定我是否了解异步控制器,因此不确定我应该使用哪种方法来解决刚刚描述的这个问题?我自己看到了两种可能性:
- Asp.net MVC 异步控制器,如果它们可以以这种方式工作
- 根据请求处理数据并报告其进度的 Windows 服务应用程序 - 该服务将通过使用正常控制器操作将特定记录写入数据库来启动;这将启动它,然后服务会将其进度状态写入数据库,以便我的 Asp.net MVC 应用程序能够在客户端进程轮询请求中读取它。
c# - AsyncController:具有 2 个异步方法的干扰
我有一个具有 2 个 AsyncMethods 的 AsyncController。一个叫做GetMessages,另一个叫做Check。似乎,一个调用阻塞了另一个,可能是因为两者都调用 this.AsyncManager.OutstandingOperations.Increment(); 他们共享同一个 AsyncManager 吗?这样做的正确方法是什么?我是否必须拥有 2 个 AsyncController 才能确保它们不会互相干扰?
更新:两种方法的代码与此处发布的代码相似:异步操作完成,但结果未发送到浏览器
其实是同一个控制器,只是加了Check/CheckCompleted。有时,“检查”必须被触发,以便“GetMessages”返回
Update2:两种方法的等待时间均为 60 秒。我现在将一个减少到 5 个,这有帮助,但我认为这只是一个 hack。