2012-06-04 60 views
4

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

+1

你是如何托管WCF服务?在Windows服务,IIS等? – StingyJack

+0

在Windows主机 – Nate

+0

“Windows”... Windows是什么?服务,IIS,控制台应用程序,Winforms/WPF应用程序? – StingyJack

回答

2

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

WCF中的一个概念是,您可以编写自己的服务代码来执行所需的功能,而无需担心基础架构和托管。一旦你编写了你的​​服务逻辑,你就可以修饰和配置你的服务,将它暴露给其他进程。使用这种方法意味着您可以在不重写实际服务逻辑的情况下更改您的服务如何暴露给其他进程 - 基本上只需更改您的配置即可。因此,主要入口点是特定于您如何选择托管并向外界展示WCF服务。

只是谷歌周围的“WCF托管”,你会发现很多信息。

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

+0

ok,那么旧的Windows Service的主要方法在哪里? – Nate

+0

我打算假设你正在使用Visual Studio。添加一个新项目并从向导列表中选择Windows服务。 Visual Studio将为Windows服务生成模板和代码存根。你会看到一个Program.cs文件,并且有你的Main()方法。这是你的切入点。由于Windows服务基本上是一个可执行文件(* .exe),因此它需要一个入口点。 – RobertMS

3

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

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

相关问题