小编Osk*_*erg的帖子

如何获得字符串的瑞典语排序顺序

我在排序瑞典字符串时遇到问题。

我在使用以下字符时遇到问题:v、w、å、ä、ö。

new[] { "ö", "ä", "å", "wa", "va", "wb", "vb", "a"  }
.OrderBy(x => x, new CultureInfo("sv-SE").CompareInfo.GetStringComparer(CompareOptions.None))
Run Code Online (Sandbox Code Playgroud)

预期:a、va、vb、wa、wb、å、ä、ö

实际:a、va、wa、vb、wb、å、ä、ö

是否有任何选项可以使其按预期对字符串进行排序?

c# linq sorting

6
推荐指数
1
解决办法
359
查看次数

如何在MVC 3中正确进行长轮询

我正在尝试连接AsyncController,以便当用户单击订单页面上的订单上的保存时,查看相同订单的所有用户都应该收到订单已更改的通知.我实现这一点的方法是在订单页面上进行长轮询ajax请求,但是如何制作可扩展的AsyncController来处理这个问题对我来说并不明显.

所以这就是我到目前为止,ID是指示更改或轮询更改的订单的ID.

public class MessageController : AsyncController
{
    static readonly ConcurrentDictionary<int, AutoResetEvent> Events = new ConcurrentDictionary<int, AutoResetEvent>();

    public ActionResult Signal(int id)
    {
        AutoResetEvent @event;
        if (Events.TryGetValue(id, out @event))
            @event.Set();

        return Content("Signal");
    }

    public void WaitAsync(int id)
    {
        Events.TryAdd(id, new AutoResetEvent(false));

        // TODO: This "works", but I should probably not block this thread.
        Events[id].WaitOne();
    }

    public ActionResult WaitCompleted()
    {
        return Content("WaitCompleted");
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经看过如何在ASP.NET MVC中进行长轮询AJAX请求?.我试图了解有关此代码的所有细节,但据我了解此代码,它阻止了线程池中的每个工作线程,据我所知,最终会导致线程饥饿.

那么,我该如何以一种漂亮,可扩展的方式实现它呢?请记住,我不想再使用任何第三方组件,我希望能够很好地理解如何正确实现此方案.

asp.net-mvc asynchronous long-polling

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

在 IOS 上的 Safari 中,每个域允许多少个同时的 websocket 连接?

当同时打开多个网页到我们的网站时,我们在 IOS 设备上遇到 Safari 问题。

问题似乎与我们的长轮询请求和 Safari 对每个域的并发连接数的限制有关。

如果我们在 SignalR 中切换到 websockets,这个问题会得到解决,还是 Safari 对每个域的并发连接数施加限制对我们来说仍然是一个问题?

safari websocket ios signalr

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

应用程序池回收后CookieAuthentication cookie无效

我有一个使用 Microsoft.AspNetCore.Authentication (2.2.0) 的 .net core 项目,配置为使用 CookieAuthentication。Cookie 配置为持久性并在 7 天后过期。问题是每当应用程序池被回收时,所有登录的用户都会被注销。

我根本不使用会话。我已经验证该 cookie 仍然存在于网络浏览器中,看来现有的 cookie 被服务器确定为无效。我怎样才能改变这种行为?

这是当前的配置:

services
    .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(
        CookieAuthenticationDefaults.AuthenticationScheme,
        options =>
        {
            options.AccessDeniedPath = "/";
            options.LoginPath = "/";
            options.LogoutPath = "/Authentication/Logout";
            options.Events.OnRedirectToLogin = context =>
            {
                context.Response.Redirect("/?returnUrl=" + context.Request.GetEncodedPathAndQuery());

                return Task.CompletedTask;
            });
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core cookie-authentication

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