Owin和切换用户

时间:2015-06-12 09:01:07

标签: c# .net owin

与Owin有问题(对此很新)。

基本上,我们有一个运行Owin的Windows桌面应用程序,并在

上侦听请求
static string baseAddress = "https://+:4443/";


_server = WebApp.Start<Startup>(url: baseAddress);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

using (ProcessIcon pi = new ProcessIcon())
{
    pi.Display();

    // Make sure the application runs!
    Application.Run();
}

应用程序在启动时运行,并且一直在监听..一切正常。

问题是“切换用户”发生的时间。 当新用户登录时,会显示

Failed to listen on prefix 'https://+:4443/' because it conflicts with an existing registration on the machine.

我理解为什么会发生这种情况,然而,努力寻找一个很好的解决方案来解决这个问题,而不会弄乱检测事件等。 还有其他人经历过这个吗?

1 个答案:

答案 0 :(得分:1)

好吧,如果用户需要与应用程序进行交互,那么它就是用户绑定的。因此,在您的情况下,服务不适用;用户交互部分。

此处的问题是该登录的第一个用户已在使用该端口。由于该应用程序仍在运行,启动该应用程序的新用户将遇到此问题

如果您正在托管网络应用程序,您有几个选择:

  • IIS中的主机:IIS是一种适用于托管具有应用程序池等的Web应用程序的Windows服务。它始终运行应用程序的单个实例
  • 在2个应用程序中拆分逻辑并创建服务:在这种情况下,您将拥有一个Windows服务,它可以处理所有与Web应用程序相关的内容,以及另一个与用户交互的服务。与用户交互的应用程序可以通过标准http调用与Web应用程序通信。
  • 为不同的实例订阅不同的端口。例如,这可以是用户设置。这为您的案例提供了最快的解决方案,但稍后可能会导致问题。