WCF 'sub main' не найден - PullRequest
0 голосов
/ 11 мая 2011

Я, должно быть, схожу с ума ...

После получения тестового WCF, размещенного в службе Windows, я пытаюсь выбрать другой (практика, практика, практика).

Я создал сервисную библиотеку WCF, добавил одну функцию.Затем создал службу Windows и добавил мой WCF в проект.Остальные вещи, расположенные здесь (http://joefreeman.co.uk/blog/2010/03/creating-a-setup-project-for-a-windows-wcf-service-with-visual-studio/)

), теперь я получаю эту ошибку "Sub Mian не найден в [приложении WCF]", когда я пытаюсь построить решение.

Я не сделалНе думаю, что для проектов WCF требуется субмашина, поскольку они являются сервисами, а не приложениями. Что я делаю не так? У меня не было субмагины в моем последнем проекте. Есть идеи?

Ответы [ 3 ]

4 голосов
/ 20 августа 2013

Для тех, кто ищет тот же ответ, я был ...

Создал службу в 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 в НЕКОТОРЫЕ, и, надеюсь, она уже должна знать, где она находится.

0 голосов
/ 27 октября 2017

Убедитесь, что вы случайно не изменили тип приложения на что-то глупое, например «приложение для форм Windows», откройте свойства проекта и убедитесь, что он находится в «библиотеке классов».

0 голосов
/ 11 мая 2011

Служба WCF сама по себе не нуждается в Sub Main, но ваша служба Windows делает это.

Сравните с ранее созданной рабочей службой Windows.

edit: используя 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()
...