【问题标题】:Main() not getting called in C# ( A combined WinForms + WCF Service application)Main() 未在 C# 中调用(组合的 WinForms + WCF 服务应用程序)
【发布时间】:2023-02-09 02:37:51
【问题描述】:

我启动了一个类型为“WCF 服务库”的 C# 项目。

为了在 GUI 应用程序中包含 WCF 服务,我使用项目上的添加按钮在该项目(而非解决方案)中添加了 Windows 窗体。然后我将项目输出类型更改为“Windows 应用程序”。

该 exe 正在 bin 目录中生成,但是当我在调试中单击“开始”时,控件不会使 Main() 无效。但是 WCF 服务正在托管。

单击开始时如何使控件进入主界面?

看起来它们(WCF 服务/exe)都必须单独说明(尽管工作正常)

编辑: 将它们放在一个项目中的原因是,服务很容易从应用程序访问数据。应用程序处理数据,服务向外界发送/接收数据。

在这个项目中,EXE(应用程序)必须手动启动并且运行良好。当我单击“调试”时 WCF 服务启动并且工作正常。

那么问题来了,如何一起启动它们呢?

【问题讨论】:

  • 您需要解决的原始问题是什么?为什么要在同一个可执行程序中同时使用“WCF 服务库”和普通可执行应用程序?对我来说,这听起来像是您误解了要求,或者设计有缺陷。
  • 也请花一些时间阅读the help pages,获取SO tour,阅读How to Ask,以及this question checklist。然后edit你的问题来改进它,比如创建一个好的标题,用一句话概括你的问题。
  • A服务顾名思义,就是你可以调用的东西,或者更准确地说,你可以请求它做某事。一个可执行的是 - 嗯 - 一个独立的应用程序。因此,服务本身不应该是一个 exe,而应该是称为来自一个(通常这是您的 IIS 服务器)。
  • 听起来真正的问题是“WinForms 应用程序中的 Main 在哪里”? Main 就在那里,即使它被隐藏也会被调用。如果您将特定窗体配置为入口点,VS 将生成初始化并启动该窗体的代码
  • 你的意思是你的个别方法可以调用,但是如果你把它们和main方法放在一起,就不行了?

标签: c# winforms wcf program-entry-point


【解决方案1】:

为了解决这个问题,我不得不重新设计解决方案的结构。

  1. 创建了第一个具有 WCF 服务的项目。这只有 WCF 服务所需的接口和数据协定,而不是实现。
  2. 使用 WinForms GUI 应用程序创建了第二个项目。这有来自/到用户的输入/输出。
  3. 我在 WinForms GUI 应用程序项目(第 2 点)中添加了 WCF 服务的实现,以便 WCF 服务实现可以访问用户数据,反之亦然。
  4. GUI 应用程序项目 (exe) 将引用 WCF 服务项目 (DLL)。

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 2013-01-28
    • 2013-03-24
    • 2013-11-25
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2017-04-09
    • 2013-02-27
    相关资源
    最近更新 更多