小编Gle*_*ton的帖子

FormsAuthentication.SetAuthCookie在异步操作中抛出NullReferenceException

我发现FormsAuthentication.SetAuthCookie抛出NullReferenceException - 对象引用未设置为azure网站上异步操作内的对象实例.

我找到了以下内容:

http://connect.microsoft.com/VisualStudio/feedback/details/743350/formsauthentication-setauthcookie-throws-nullreferenceexception-if-called-in-an-async-action-in-mvc4

但是我已经有了

 <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
Run Code Online (Sandbox Code Playgroud)

设置和我的代码在本地工作正常我只在部署到azure时遇到问题.我正在使用Azure网站(https://www.windowsazure.com/en-us/home/scenarios/web-sites/),我的理解是这通常使用web.config?我还尝试通过Azure控制面板添加appsetting

在此输入图像描述

并添加.ConfigureAwait(false);到我期待已久的方法,但没有运气.

以下代码将抛出异常

public class TestController : Controller
    {
        public async Task<ActionResult> Index()
        {
            var httpResponse = await new HttpClient().GetAsync("http://www.google.com");
            FormsAuthentication.SetAuthCookie("test", true);
            return View();
        }
    }
Run Code Online (Sandbox Code Playgroud)

谁知道我怎么能让这个工作?

更新:

堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Threading.Tasks.<>c__DisplayClass1c.<GetRethrowWithNoStackLossDelegate>b__1b(Task task) +91
   System.Threading.Tasks.TaskHelpersExtensions.ThrowIfFaulted(Task task) +15
   System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +77
   System.Web.Mvc.Async.<>c__DisplayClass3f.<BeginInvokeAsynchronousActionMethod>b__3e(IAsyncResult asyncResult) +16
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +50
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +59
   System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +240
   System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeActionMethodWithFilters>b__36(IAsyncResult asyncResult) …
Run Code Online (Sandbox Code Playgroud)

asp.net-4.0 async-await asp.net-mvc-3 asp.net-mvc-4

14
推荐指数
1
解决办法
5198
查看次数

访问beforeModel中的目标路由参数

beforeModel在Ember中加载路径时如何访问函数中的目标路径参数?

文档指的beforeModel是中止或重定向转换的正确位置 - 但是如果没有目标参数,我无法添加所需的逻辑来确定是否应该重定向.

App.PostRoute = Ember.Route.extend({
  beforeModel: function(transition) {

    // transition doesn't seem to have the target params

  }
});
Run Code Online (Sandbox Code Playgroud)

我也无法找到有关API文档中描述的Transition对象的任何明确文档:

http://emberjs.com/api/classes/Ember.Route.html#method_beforeModel

ember.js ember-router

3
推荐指数
1
解决办法
1965
查看次数