小编Moj*_*aba的帖子

27
推荐指数
2
解决办法
1万
查看次数

async/await抛出NullReferenceException我们如何诊断我们搞砸了哪里?

我们已经开始在asp.net应用程序中使用async/await,现在我们在生产中得到了着名的例外

发生未处理的异常,并终止该过程.

应用ID:/ LM/W3SVC/376/ROOT

进程ID:3796

例外:System.NullReferenceException

消息:对象引用未设置为对象的实例.

堆栈跟踪:在System.Web.ThreadContext.AssociateWithCurrentThread(布尔setImpersonationContext)在System.Web.HttpApplication.OnThreadEnterPrivate(布尔setImpersonationContext)在System.Web.LegacyAspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback回调,对象状态)在System.Web.LegacyAspNetSynchronizationContext.CallCallback( System.Threading.Tasks.AwaitTaskContinuation.RunCallback中的SendOrPostCallback回调,对象状态)(ContextCallback回调,对象状态,任务和当前任务)---从抛出异常的先前位置的堆栈跟踪结束---在System.Threading.Tasks.在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)的System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)中的AwaitTaskContinuation.b__1(Object s)at at System.Threading.QueueUserWorkItemCal System.Threading.ThreadPoolWorkQueue.Dispatch()中的lback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()

有什么方法可以获得有关产生问题的代码/任务的更多信息吗?

第二个问题:我们尝试在一个简单的测试webform应用程序中本地重现异常

        protected void Page_Load(object sender, EventArgs e)
    {
        LogMessageToFile("before_task");
        var t = Test();

        tasks.Add(t);
    }
    async Task Test()
    {
        await Task.Run(() =>
       {
           LogMessageToFile("inside_task");
           Thread.Sleep(1000);
       }
            );
        this.Title = "test";
        LogMessageToFile("after_task");

        //  throw new Exception("");
    }
Run Code Online (Sandbox Code Playgroud)

但是我们从来没有在我们的测试页面中得到异常,似乎在Test函数中await之后的代码从未被调用过,而任务状态是WaitingForActivation,为什么我们在这段代码中没有得到异常?

c# asp.net async-await

10
推荐指数
1
解决办法
3922
查看次数

仅通过复制获取的DLL在客户端计算机上部署Crystal报表?

您好每一个我们正在使用CR 2010 for .net而在客户端我们只需要CR reportviewr是否有任何演练复制bin目录中的crystalreport dll文件并在客户端机器中复制这些文件,运行时msi文件很大我们正在寻找用于手动(以编程方式)复制和注册所需的dll(或COM)的方法.可能吗?

任何想法都有帮助.

非常感谢.

.net winapp crystal-reports

5
推荐指数
1
解决办法
1214
查看次数

async/await方法在与调用者相同的线程中运行吗?

我已经读过async/await方法在与调用者相同的线程中运行,我在WPF应用程序中看到它,但在控制台应用程序中测试代码时,我发现它在与调用者不同的线程中运行.我错过了什么吗? 在此输入图像描述

c# async-await

2
推荐指数
1
解决办法
1274
查看次数