К счастью, мне удалось найти решение. Я думаю, что я должен опубликовать его, возможно, когда-нибудь это поможет кому-то :)
Я на самом деле сделал две ошибки, но один из них, к сожалению, был вызван указанным учебником (here) в связи с моим временным отключением. На шаге 5, пункт 8 этого учебника, есть пример переопределения метода OnStart():
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
Берегись, что Service1
неоднозначен в этом контексте, потому что это имя класса проекта службы Windows, а также имя класса службы WCF. Он должен быть написан с полным именем (здесь это WcfServiceLibrary1.Service1). В моем случае имя службы было другим, и я просто поставил Service1
туда, чтобы спешить. Во всяком случае ..
В случае, если у кого-то все это позади и по-прежнему встречается с той же проблемой (с прекращением работы приложения), я думаю, что вы должны попробовать открыть проект в Visual Studio и попытаться отладить клиентское приложение как новый экземпляр (щелкните правой кнопкой мыши по проекту-> Debug -> Start as new instance ...).
Это может показаться тривиальным, но когда вы нажмете F5 или Ctrl + F5, тогда даже если у вас есть только тот проект, который задан как проект запуска, VS все равно будет размещать его клиент. В моем случае это имело значение, потому что мне нужно было использовать файл изолированного хранилища. И поскольку он был сохранен на стороне обслуживания, тогда у меня был этот файл, созданный на сервере IIS, созданным VS. Так или иначе, мой метод создания такого файла установил FileMode.Open(), и он вызывал раздачу, потому что в службе Windows он не существовал, и новый не мог быть создан, и это было необходимо для правильного его запуска.
Более того, это просто показало мне, что на этот вопрос нельзя ответить должным образом, потому что данные, которые я предоставил, были недостаточными, и это было нежно.
Cheers :)