【问题标题】:can't find main static main method in WCF在 WCF 中找不到主要的静态主要方法
【发布时间】:2012-06-04 13:23:16
【问题描述】:

我创建了 WCF 服务并遇到了问题。我需要定期更新数据库,但我找不到像 Main 这样的静态方法,它可以在没有客户端交互的情况下完成。我能做些什么???在这种情况下你有什么建议?

【问题讨论】:

  • 您如何托管 WCF 服务?在 Windows 服务、IIS 等中?
  • "Windows"... Windows 什么?服务、IIS、控制台应用、Winforms/WPF 应用?

标签: c# wcf


【解决方案1】:

WCF 中没有 Main 方法(或类似的入口点)。您需要将 WCF 服务托管在另一个进程(例如 Windows 服务、IIS 或自托管)中以“激活”它并使其可用于其他进程。

WCF 中的一个概念是您编写服务代码来执行您需要的功能,而不必担心基础架构和托管。编写服务逻辑后,您可以装饰和配置服务以将其公开给其他进程。使用这种方法意味着您可以更改服务向其他进程公开的方式,而无需重新编写实际的服务逻辑——您实际上只是更改了配置。因此,主要入口点特定于您选择如何托管和向外界公开 WCF 服务。

只需在 Google 上搜索“WCF 托管”,您就会发现很多信息。

如果您不需要将服务逻辑暴露给外部进程(听起来可能是您的问题的情况),那么您可能不需要使用 WCF,您可以只编写一个普通的旧 Windows 服务。

【讨论】:

  • 我假设您使用的是 Visual Studio。添加一个新项目并从向导列表中选择 Windows 服务。 Visual Studio 将为 Windows 服务生成模板和代码存根。您将看到一个 Program.cs 文件,其中包含您的 Main() 方法。这是你的切入点。由于 Windows 服务基本上是一个可执行文件 (*.exe),因此它需要一个入口点。
【解决方案2】:

如果您的 wcf 服务是自托管的,那么您可以在发布服务之前在您的应用程序中执行此操作。

如果它在 IIS 中,那么实际上没有 application_start 之类的东西,因为主机可能是在第一次请求时创建的。见WCF application start event

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多