Я не знаю, в чем была ваша конкретная проблема, но у меня также была проблема с использованием служб WCF в том же процессе. Моя проблема заключалась в том, что мое приложение зависало на минуту после вызова службы от клиента и, наконец, возвращалось с исключением тайм-аута. Я предполагаю, что это как-то связано с блокирующим вызовом в потоке при ожидании ответа от сервера ... что является проблемой, если сервер заблокирован. Я использовал именованные каналы, другие варианты не пробовал.
Предложение Самсона, приведенное выше, вероятно, работает, но я сделал это по-другому. Я создал службу и прослушиватель через поток вместо того, чтобы вызывать размещенную службу в потоке. Кажется, все работает нормально.
Теперь немного не по теме - Firestrand спросил, почему вы хотите делать это из своего собственного приложения. Я создаю службу Windows и отдельный пользовательский интерфейс приложения WPF, для которого он должен взаимодействовать. Однако отладка служб Windows - это своего рода боль, поэтому большая часть работы службы, включая вызовы WCF, выполняется в отдельной DLL, на которую я могу ссылаться в приложении пользовательского интерфейса в «тестовом» режиме, который, по сути, просто вызывает процедуры запуска. что и сама служба Windows. Это позволяет мне отлаживать как пользовательский интерфейс, так и «смоделированную» службу без подключения к процессам, запуска нескольких процессов и т. Д. Кажется, он отлично работает. Как только пользовательский интерфейс и DLL будут завершены, я просто создам фактическую службу Windows, которая по сути является просто оболочкой для DLL, а затем, по крайней мере, скрою тестовый режим в пользовательском интерфейсе. Просто подумал, что поделюсь, если кто-то обнаружит, что этот подход может быть полезным.
person
Dave
schedule
24.05.2011