.net c# 写的服务器,能否在一个多用户的服务器上运行一个

阿狸Ahri 2018-01-19 11:37:30
服务器器有A,B,C三个用户

当三个登录时,只允许一个开启服务,另外两个关闭

让 开启服务的用户注销时,其他用户自动切换过来
...全文
2016 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
还想懒够 2018-02-14
  • 打赏
  • 举报
回复
那就是Windows服务与桌面有交互行为是吧? 那就先分析下与桌面交互是否有用,如果没用,就禁用它
阿狸Ahri 2018-02-10
  • 打赏
  • 举报
回复
引用 18 楼 diaodiaop 的回复:
多用户 多服务 怎么可能... windows好像不是这样的啊...
但是我检查了一遍,我的程序是没有问题的,现在真的就是,一有人登录进去,我就收到信息了。 我是这样测试的,我开了两个用户,原本一个用户用我已经登录进去了,然后我同事进去了,我确实收到了 服务启动的微信消息,我吧所有代码都注释了,就在 onstar里面调用 微信推送的 消息
阿狸Ahri 2018-02-10
  • 打赏
  • 举报
回复
我不是放在什么启动项里面的,我那个是window服务啊,不是那些winform,放在启动项怎么启动。 我是用cmd里面,用.net那个安装程序去安装的。然后 在我的计算机管理--服务里面可以看到的。
清风道禅 2018-02-06
  • 打赏
  • 举报
回复
WIndows服务和Windows应用程序是不一样的 如是是Windows应用程序 你放在启动菜单里 的话会出现 你说的问题 如果是Windows服务程序 是不会出现你描述的问题的
Hello World, 2018-02-05
  • 打赏
  • 举报
回复
windows服务和登录的用户没关系,你不要整个exe文件放到启动里去运行就好了
  • 打赏
  • 举报
回复
他说了写的服务器,肯定是exe程序咯,肯定是挂在启动项里面咯。 楼主建议好好看看windows服务是什么,怎么做,不要用exe做服务器程序。
by_封爱 2018-02-05
  • 打赏
  • 举报
回复
多用户 多服务 怎么可能... windows好像不是这样的啊...
大鱼> 2018-02-05
  • 打赏
  • 举报
回复
引用 5 楼 edfdfg 的回复:
额,昨晚太急,没写好。 意思是,我写了一个服务,然后安装在服务器上面了,但是 那台服务器可以同时连接三个用户,现在好像是有用户进入的时候,每次都会开一个服务,这样好浪费资源
每次都开一个服务?你是怎么做到的?我记得只是new一个实例而不是每次都开启一个服务啊
阿狸Ahri 2018-02-02
  • 打赏
  • 举报
回复
所以这个基本概念我不是很理解~为了安全起见,我就禁用多用户了
58662877 2018-02-02
  • 打赏
  • 举报
回复
如果你那是Windows服务进程,应该和用户登录不登录没有关系啊!你不会只是一个桌面App,跟随用户登录桌面自动启动的吧?
阿狸Ahri 2018-02-02
  • 打赏
  • 举报
回复
现在我把 服务器期的多用户登录禁用了,现在只能用一个用户登录,现在问题就先这样解决吧。 我那时候的需求是, 我写了一个 .net window server服务,这个服务器的作用就是 每隔一段时间轮询数据库,用来发送短信的,以及推模板消息的。 这个服务我已经写好了,已经安装在 服务器上面了。 但是那一台服务器,允许多用户登录。(之前是允许3人同时登录的) 因为我的window 服务是 停止或者启动的时候,会有模板消息推送到我的手机的,所以我就发现一个问题, 当我的一个同事A,有事去服务器更新代码时,他进去之后,我写的服务就开始运行了(应该是他新登录到服务器里面了), 然后另外一个同事B,也进入服务器更新别的程序(我们所有程序都在一台云服务器上),当B进去的时候,我也能收到一条 服务启动的微信通知。 所以我就认为,每一个用户进去的时候,服务都会自动启用一个。 由于这个问题的发生,我不知道是,当三个用户进入的时候,就相当于那一个服务器挂了三个服务器,这三个服务做相同的事情,都不断轮询相同的数据库,然后去发送短信,这样我怕会发重复、 所以问,有没有办法避免这个问题
还想懒够 2018-01-23
  • 打赏
  • 举报
回复
我怀疑楼主没有理解服务的概念 你需要的是一个Windows Service,而不是一个桌面启动的Application
正怒月神 版主 2018-01-22
  • 打赏
  • 举报
回复
不是太清楚,你说的服务的概念。 但是,看你的意思,应该可以使用单例模式来解决。
风轻云断 2018-01-22
  • 打赏
  • 举报
回复
linux?为什么会要开启服务?一个用户启动asp.net的项目就行了啊
mirrorspace 2018-01-22
  • 打赏
  • 举报
回复
我猜测你的意思是.有一个服务任务,在处理一个用户时,不接收其它用户.直到用户处理完成(用户自己主动注销表示完成)后,才能轮到别的用户.如果正在处理时,其它用户进来了,就暂时放到队列里.一直等到当前用户处理完. 那么有个问题,如果当前用户不注销,连接一直保持着,那么其它用户就死等了.
秋的红果实 2018-01-20
  • 打赏
  • 举报
回复
还可以用static变量,cache存储已经登陆的用户的信息 假如只保留最后登录的用户,那么,当发现有用户已经登陆(假设A,B),从变量中删除A,B,并通知下线(可以考虑用websocket),或者简单点就是,A,B再次访问时,会提示已经下线
  • 打赏
  • 举报
回复
对于 asp.net 来说,web无连接,那么它更是如此,没有在web服务器运行着什么“服务”,客户端每一次请求服务都是一次短暂的单个请求而已——然后瞬间就断开了连接。实际上 web 服务之所以比其它长连接 tcp 性能差,就是因为它有三次握手、http 协议里边冗余的动态太大而已,这都是通讯意义上的“资源浪费”问题。并没有什么别的。
  • 打赏
  • 举报
回复
当有1万个实时在线长连接客户端会话,也不过顶多就是有10万个对象而已 --> 当有10万个实时在线长连接客户端会话,也不过顶多就是有10万个对象而已 所以还是不理解你说的“开一个服务”具体是什么概念。
  • 打赏
  • 举报
回复
“每次都会开一个服务”还是不懂。 当有1万个实时在线长连接客户端会话,也不过顶多就是有10万个对象而已,不占用任何多余的“线程”,怎么会浪费资源?10万个此类“内存资源”也就是占用几M而已吧?!
阿狸Ahri 2018-01-20
  • 打赏
  • 举报
回复
额,昨晚太急,没写好。 意思是,我写了一个服务,然后安装在服务器上面了,但是 那台服务器可以同时连接三个用户,现在好像是有用户进入的时候,每次都会开一个服务,这样好浪费资源
加载更多回复(3)

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧