2014-11-14 4 views
0

Я построил решение с тремя проектами. Служба WCF, модель Entity Framework и приложение Windows Forms, в котором размещена служба.Развертывание приложения WCF Service Host?

У меня тогда есть клиентское приложение WPF, которое потребляет услугу.

В Visual Studio 2013 отладка приложения-хозяина службы работает должным образом, и я могу использовать эту услугу у клиента WPF.

Однако при запуске приложения-хозяина из .exe в каталоге отладки служба не запускается. Iget 'Service Started' и никаких исключений. Я бегу .exe как администратор & я вошел в сервер (Windows Server 2012) в качестве администратора в домене машины &:

public partial class RegimesHost : Form 
{ 
    public RegimesHost() 
    { 
     InitializeComponent(); 
     lblStatus.Text = string.Empty; 
    } 

    ServiceHost host; 
    private void btnStart_Click(object sender, EventArgs e) 
    { 
     host = new ServiceHost(typeof(RegimesService)); 
     host.Open(); 
     lblStatus.Text = "Started..."; 
    } 

    private void btnStop_Click(object sender, EventArgs e) 
    { 
     host.Close(); 
     lblStatus.Text = "Stopped..."; 
    }  
} 

Есть ли что-то очевидно, что я здесь отсутствует, почему услуга будет запускать внутри отладки Visual Studio, но не из .exe в каталоге отладки?

+1

Возможно, проблема связана с файлом app.config, который находится в папке отладки? Это означает, что ваша служба запущена, но использует другой порт/протокол. – vzayko

+0

Не думайте, что если я изменил порты baseAddress в VS, это вызовет исключение. Все работает в среде VS, просто .exe из bin запускается самостоятельно, когда служба не запускается. Я использую Entity Framework в проекте модели с db на другом сервере. Возможно, это тоже очень хорошо. – Hardgraf

+0

Можете ли вы рассказать о своих конечных точках? – Shah

ответ

0

Наконец-то запущен сервис.

Мне пришлось использовать следующий порт в мастере добавления служебных ссылок на стороне клиента. Предположительно, это связано с тем, что в режиме de-bug используется порт, определенный в app.config, поэтому, когда вы запускаете приложение отдельно, этот порт уже назначен для среды выполнения отладки, и поэтому приложение переносит следующий порт.

Трудно отладить это через серверы, используя трассировку, вероятно, хорошая идея.

Смежные вопросы