小编Chr*_*ian的帖子

在控制器中调用异步方法

我有一个控制器,如下所示:

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)

这确实将异常更改为以下"在异步操作仍处于挂起状态时完成的异步模块或处理程序".

c# async-await asp.net-mvc-4

23
推荐指数
1
解决办法
4万
查看次数

有没有办法在构建时停止VS2015 Typescript编译?

我正在运行一个Asp.Net Core RC2,project.json项目,并设置了gulp来观察和编译我的打字稿到不同的位置.但Visual Studio 2015也在每次编译时编译打字稿,给我每个js文件的副本.如何阻止VS编译我的打字稿文件.

我已经禁用了编译保存在我的tsconfig.json,但有接缝是没有选项,在构建时禁用它.

{ "compileOnSave": false }

asp.net-core

12
推荐指数
1
解决办法
2577
查看次数

使用windbg时,有一种方法可以打破特定的CLR异常

我正在调试一个生产服务,在极少数情况下抛出AppDomainUnloadedException.该异常不包含堆栈跟踪或有关其发生原因的任何有用信息.所以想要附加windbg并且只在抛出AppDomainUnloadedException而不是任何其他clr异常时中断.

这可能吗?

c# clr windbg exception

4
推荐指数
1
解决办法
844
查看次数

流利的nhibernate一对多

我有一对多的关系,不能让级联工作,一旦我设置级联我只是得到"对象引用一个未保存的瞬态实例......".

我的映射看起来像这样

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)

c# nhibernate fluent-nhibernate fluent-nhibernate-mapping

4
推荐指数
1
解决办法
7066
查看次数