小编waf*_*les的帖子

SQL写入ASP.NET用户表不保存

我的设置:

  • ASP.NET 4.5 web api(在Azure上)将数据保存到SQL db(也在Azure上)
  • AngularJS Web前端(另一个Azure网站)

当用户首次注册时,我会向他们展示"入门介绍".介绍只应运行一次 - 我将介绍启动日期的时间戳记录为ASP.NET用户表中的自定义字段.

想象一下,当我登录(作为用户)并看到介绍TWICE时我会感到惊讶.

AngularJS前端正在向ASP.NET api正确发送"intro Viewed"消息,api以成功消息响应.但是,当我查看db中的原始数据时,时间戳绝对不会更新.因此,用户将第二次看到介绍(此时时间戳正确地记录在db中).

我有一个糟糕的解决方法.客户端从我的服务器请求OAuth Bearer令牌后,客户端会请求用户信息(以决定是否显示该游览).等待100ms然后将"浏览过的"消息发送回服务器会掩盖该问题.

我在任何时候都没有看到存储数据的任何其他问题.因为我们的数据库是在Azure上,所以我无法连接Profiler,内置的审计也没有给我任何线索.

是否有一些关于请求令牌使ASP.NET身份处于有趣状态的令牌?在你写到桌子之前需要等待一段时间?扩展基本身份设置的自定义字段是否容易出现这样的问题?UserManager是否可能在其黑盒子中做一些奇怪的事情?

有没有人建议如何继续调试这个问题?或者听说过类似的东西?

以下是应该更新db中"tour Viewed"时间戳的相关代码:

    [HttpPost, Route("UserInfo")]
    public async Task<IHttpActionResult> UpdateUserInfo(UpdateBindingModel model)
    {
        var currentUser = UserManager.FindById(User.Identity.GetUserId());

        if (model.FirstName != null)
        {
            currentUser.FirstName = model.FirstName;
        }
        if (model.LastName != null)
        {
            currentUser.LastName = model.LastName;
        }
        if (model.SetIntroViewCompleteDate)
        {
            currentUser.IntroViewCompleteDate = DateTime.UtcNow;
        }
        if (model.SetIntroViewLaunchDate)
        {
            currentUser.IntroViewLaunchDate = DateTime.UtcNow;
        }
        if (model.SetTipTourCompleteDate)
        {
            currentUser.TipTourCompleteDate = DateTime.UtcNow;
        }
        if (model.SetTipTourLaunchDate)
        {
            currentUser.TipTourLaunchDate …
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net azure asp.net-web-api

12
推荐指数
2
解决办法
960
查看次数

无法找到没有标识符的segues

我在Xcode 6和7中收到一条警告说:

"直接从视图控制器启动的Segues必须具有标识符"

但是,当我查看故事板中的所有segue时,它们都有标识符,我以编程方式将它们全部调用.无论如何,它不是一个显示停止 - 应用程序构建并完全可用.我只是不喜欢警告.

有这样的有点相关的问题一个,但它不是我看到的问题.

有隐藏的segues可以居住的地方吗?或者我可以看一下主要的segue列表?

xcode objective-c ios uistoryboard uistoryboardsegue

4
推荐指数
2
解决办法
2631
查看次数

SignalR Groups.Add超时并失败

我正在尝试使用SignalR 2.2将成员添加到组中.每次,我都会达到30秒的超时并获得"System.Threading.Tasks.TaskCanceledException:任务被取消了." 错误.

从我写的GroupSubscriptionController,我打电话给:

 var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProjectHub>();
 await hubContext.Groups.Add(connectionId, groupName);
Run Code Online (Sandbox Code Playgroud)

我发现这个问题是人们经常遇到这个问题,但每次都发生在我身上.我正在一个VS2015上启动localhost端口运行后端(ASP.NET 4.5),而另一个VS 2015上的前端(AngularJS SPA)启动了localhost端口.

我已经让SignalR工作到了向每个连接的客户端广播消息的程度.这看起来很容易.现在,添加Groups部分(以便人们只从服务器获取选择的消息)让我把头发拉出来......

c# asp.net signalr signalr-hub

3
推荐指数
2
解决办法
1453
查看次数