我有一个控制器,如下所示:
public MyController : Controller
{
public ActionResult DoSomething()
{
CallSomeMethodWhichDoesAsyncOperations();
return Json(new { success = successful }, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud)
调用我的控制器时,我收到以下错误:
此时无法启动异步操作.异步操作只能在异步处理程序或模块中启动,或者在页面生命周期中的某些事件中启动.如果在执行页面时发生此异常,请确保标记页面
<%@ Page Async="true" %>.
现在我没有控制权CallSomeMethodWhichDoesAsyncOperations,方法本身不是异步,但内部做了一些异步火灾和遗忘.我该怎么办才能修复它?尝试将控制器更改为AsyncController和/或使控制器中的方法异步.
编辑:
当我第一次尝试使用AsyncController时,结果相同
public MyController : AsyncController
{
public ActionResult DoSomething()
{
CallSomeMethodWhichDoesAsyncOperations();
return Json(new { success = successful }, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud)
然后
public MyController : AsyncController
{
public async Task<ActionResult> DoSomething()
{
CallSomeMethodWhichDoesAsyncOperations();
return Json(new { success = successful }, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud)
这确实将异常更改为以下"在异步操作仍处于挂起状态时完成的异步模块或处理程序".
我正在运行一个Asp.Net Core RC2,project.json项目,并设置了gulp来观察和编译我的打字稿到不同的位置.但Visual Studio 2015也在每次编译时编译打字稿,给我每个js文件的副本.如何阻止VS编译我的打字稿文件.
我已经禁用了编译保存在我的tsconfig.json,但有接缝是没有选项,在构建时禁用它.
{
"compileOnSave": false
}
我正在调试一个生产服务,在极少数情况下抛出AppDomainUnloadedException.该异常不包含堆栈跟踪或有关其发生原因的任何有用信息.所以想要附加windbg并且只在抛出AppDomainUnloadedException而不是任何其他clr异常时中断.
这可能吗?
我有一对多的关系,不能让级联工作,一旦我设置级联我只是得到"对象引用一个未保存的瞬态实例......".
我的映射看起来像这样
public class SharedDetailsMapping : ClassMap<SharedDetails>
{
public SharedDetailsMapping()
{
Id(x => x.Id).GeneratedBy.Identity();
HasMany(x => x.Foos);
}
}
public class FooMapping : ClassMap<Foo>
{
public FooMapping()
{
Id(x => x.Id).GeneratedBy.Identity();
References(x => x.SharedDetails).Cascade.SaveUpdate();
}
}
Run Code Online (Sandbox Code Playgroud)
这样的课程
public class Foo
{
public Foo()
{
SharedDetails = new SharedDetails();
SharedDetails.Foos.Add(this);
}
public Foo(SharedDetails sharedDetails)
{
SharedDetails = sharedDetails;
SharedDetails.Foos.Add(this);
}
public virtual Guid Id { get; set; }
public virtual SharedDetails SharedDetails { get; set; }
}
public class SharedDetails
{ …Run Code Online (Sandbox Code Playgroud)