找不到WCF'sub main'

时间:2011-05-10 22:56:54

标签: vb.net wcf service host

我一定是在失去理智......

在Windows服务中托管测试WCF之后,我正在尝试另一个(练习,练习,练习)。

我创建了一个WCF服务库,添加了一个函数。然后创建了一个Windows服务,并将我的WCF添加到项目中。剩下的东西都在这里(http://joefreeman.co.uk/blog/2010/03/creating-a-setup-project-for-a-windows-wcf-service-with-visual-studio/)

现在我在尝试构建解决方案时遇到“在[WCF app]中找不到Sub Mian”错误。

我认为WCF项目不需要Sub Main,因为它们是服务而不是应用程序。我究竟做错了什么?我在上一个项目中没有副主力。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

对于那些正在寻找相同答案的人我是......

在VB.NET(VS2010)中创建了一个服务,并且得到了上面列出的相同错误......

'Sub Main' was not found in 'SERVICENAME.Service1'.

在VB.NET中,VS2010自动为我创建了一个“Service1.Designer.vb”文件。该文件的内部是:

    Shared Sub Main()
    Dim ServicesToRun() As System.ServiceProcess.ServiceBase

    ' More than one NT Service may run within the same process. To add
    ' another service to this process, change the following line to
    ' create a second service object. For example,
    '
    '   ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
    '
    ServicesToRun = New System.ServiceProcess.ServiceBase() {New SERVICENAME}

    System.ServiceProcess.ServiceBase.Run(ServicesToRun)
End Sub

要解决此问题,请在解决方案资源管理器中右键单击解决方案名称,转到“应用程序”选项卡,然后在“启动对象”下拉框中选择“Sub Main”作为启动对象。重新编译。

当然,C#中的文件名和结构会有所不同,但我们的想法是Visual Studio将Main过程放在SOMEWHERE中,希望它已经知道它在哪里。

答案 1 :(得分:0)

WCF服务本身不需要Sub Main,但是你的Windows服务不需要。

与之前构建的Windows服务进行比较。

编辑:使用C#,当我使用Windows服务模板创建新项目时,我在Program.cs文件中获得以下初始代码(static void Main是您的Sub Main)。如果你的Windows服务中没有这个,那么我会非常感到惊讶。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    static void Main()

答案 2 :(得分:0)

检查您是否无意中将应用程序类型更改为愚蠢的内容,例如&#34; windows forms app&#34;,点击项目的属性并确保它在&#34;类上文库&#34;