【问题标题】:Application or Service to do some tasks in specific time slot应用程序或服务在特定时间段内完成一些任务
【发布时间】:2018-03-23 06:22:53
【问题描述】:

我有一个场景来创建一个应用程序(Windows 服务,Winforms 应用程序),它每天在用户 PC 上自动运行两次。这些用户是同一网络中的内部员工。所以在早上和晚上这个应用程序必须运行。但它不需要显示任何窗口或说明它正在运行的信息。在系统托盘中有一个简单的通知它开始执行是很好的。

我在 Web 应用程序开发方面的经验。所以我在决定哪个是最好的这些应用程序时有点卡住了。我的理解是,如果它是一个独立的 exe,我们可以要求所有用户下载 exe 并安装。 如果它是一个 Windows 服务,我们可能会依赖 instalutil 来安装该服务。

所以我真的需要对此提出建议。该应用程序什么都不是,只是请求一个 TFS api,并且生成的 JSON 必须存储在表中。所以 JSOn 将基于每个用户使用他们的 windows 身份验证。

请提出一个好的解决方案,以实现其最佳、安全和最简单的方式,即使对于非技术精通的用户也是如此。

【问题讨论】:

    标签: c# winforms visual-studio windows-services


    【解决方案1】:

    而不是所有用户每天两次与 TFS 服务器通信,我想更好的方法是在一台集中式机器上安装一项服务,该机器将每天运行两次窗口服务,并且该机器将使用 WCF 托管该服务,以便其他用户将与机器通信这将帮助您分配 tfs api 的负载。在我的案例中,我使用了相同的方法,其中一台机器与 ALM 通信,而另一台机器与该机器通信以获取文件。

    创建窗口服务非常简单直接。 按照链接制作一个:

    https://www.c-sharpcorner.com/UploadFile/naresh.avari/develop-and-install-a-windows-service-in-C-Sharp/

    您可以使用 IIS、TCP、Webservice、控制台应用程序在 WCF 中托管服务,由您决定。点此链接

    https://www.codeproject.com/Articles/550796/A-Beginners-Tutorial-on-How-to-Host-a-WCF-Service

    我想我帮助了你:)

    【讨论】:

    • 对不起,由于缺乏Windows应用程序和wcf方面的知识,我有一些问题..从TFS API返回的JSON对于不同的用户是不同的。如果我登录到我的机器,它会为我返回条目。同样的方式,如果其他人登录它只为他们返回结果..但是如果它在一台机器上,我们怎么能使它成为可能,因为它需要用户登录才能获取他们的详细信息......还有这怎么能自动化..我什么从您的解释中可以理解,是需要用户提出一些请求来获取 API,还是用户每次都必须指定他们的凭据??
    • 好的,我不知道这种情况。我认为我的初始方法在这种情况下不起作用,尽管您可以使用每个人的凭据设置单台机器,但我担心用户不会喜欢他们的凭据为此共享。(仅当 tfs 未映射到特定系统时)。那么在这种情况下,最好将服务安装到每台机器上,并按照您的要求安排服务的计时器以 6 小时的间隔运行。
    • 好的.. 认识你的朋友... 无论如何我喜欢你分享的那些信息
    • 另一种方法是,单台机器将为所有用户获取 JSON,因为它将拥有凭证列表,然后 WCF 会将结果 (JSON) 发布到任何本地主机服务器,以便每个用户都可以从他们的浏览器访问该端点并下载它。这完全取决于您要使用的架构。并且不需要任何用户手动干预来调用api。只有他们必须达到终点才能获得结果
    • OK.. 但问题是用户必须打开一些 URL。所以为了避免打开 URL(当然需要手动干预),我猜 windows 服务会工作得最好
    猜你喜欢
    • 2020-05-24
    • 2013-07-07
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多