我一定是在失去理智......
在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,因为它们是服务而不是应用程序。我究竟做错了什么?我在上一个项目中没有副主力。有什么想法吗?
答案 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;