【问题标题】:Always running web service始终运行 Web 服务
【发布时间】:2020-02-05 21:38:46
【问题描述】:

我刚刚创建了一个简单的 asp.NET Web 服务应用程序,其中包含一个传递当前服务器时间的 WebMethod 和一个 Windows 窗体应用程序作为客户端运行。

就目前而言,要使客户端应用程序能够与服务器应用程序交互,需要运行 Web 服务应用程序(在 Web 浏览器中运行)。如果浏览器随后关闭,则客户端应用无法与 Web 服务应用通信。

理想情况下,我需要此 Web 服务始终在我的服务器的后台运行(不仅仅是在打开 Web 浏览器时)并在服务器启动时启动。

实现这一目标的最佳方法是什么?我对 asp.NET 的经验很少,所以有没有办法将 Web 服务配置为后台服务?我是否需要创建一个单独的使用 asp.NET Web 服务的 Windows 服务应用程序?

任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 嘿 Paul... 您是否已将 Web 服务部署到 IIS 服务器?还是您仅通过 Visual Studio 在本地工作站上运行它?
  • 目前只是从 Visual Studio 本地运行它。
  • 好的,那么 CodeCaster 的回答是正确的。为了使其始终可用,您需要将其部署到公开可用的 IIS 服务器。 (或者至少,它在客户端可以访问的同一网络上可用。)
  • 回答您的最后一个问题:不,您不需要创建单独的 Windows 服务应用程序。您的 Web 服务实际上只是一个网站,因此您将在 IIS 中这样设置它。

标签: c# asp.net .net web-services windows-services


【解决方案1】:

是的,默认情况下,当您关闭用于调试的浏览器时,Visual Studio 会停止调试您的 Web 应用程序……但您不应从 Visual Studio 运行您的应用程序。您将 Web 应用程序部署到 IIS。然后它们会在机器启动时启动,并且它们不需要浏览器来保持运行。

【讨论】:

  • 哦,好吧,我不知道。所以VS只是把浏览器当作调试工具。您能否解释一下如何将 Web 应用程序部署到 IIS?感谢您的帮助。
  • @PaulAlexander,如果您需要帮助部署到 IIS,那将超出此问题的范围。首先,花一些时间在谷歌上。有很多关于如何做到这一点的教程和文章。如果您遇到困难,请回来再问一个问题。
  • 好的就行。非常感谢您的帮助。
  • @PaulAlexander VS 并没有真正将浏览器用作调试工具。我相信它只是监视进程以查看它是否退出。如果它退出,它假定您要停止 Web 服务器(通常是称为 IIS Express 的迷你版 IIS)和调试会话。之所以做出此选择,是因为 Visual Studio 是一种开发工具,并不打算让应用程序始终运行或部署在生产环境中。这就是完整的 IIS 的用途。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 2020-05-01
  • 2011-02-03
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多