wcf service, форма в отделном потоке
От: pumpurumer  
Дата: 26.11.10 11:39
Оценка:
Есть singletone, который обслуживает запросы от клиента, простой сервис, без callback
 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
                        ConcurrencyMode = ConcurrencyMode.Single)]
    public class PrinterSingletone : IPrintServer
    {
        public IList<PrintTarget> GetPrinters()
        {
            //...
        }
    }

запускается вот так:
        [MTAThread]
        static void Main(string[] args)
        {
            FormFakeKKM.Init();
            XmlConfigurator.Configure();
            var service = new PrinterSingletone();
            var serviceHost = new ServiceHost(service);
            serviceHost.Open();
            Console.ReadKey();
            serviceHost.Close();
        }

FormFakeKKM.Init — запускает отдельный поток, в котором работает ShowDialog у формы.

А теперь проблема: если поток с формой не запушен, все отрабатывает нормально, если запустить поток формы — сервис перестает работать, клиенты при запросе отваливается по таймауту. (логи говорят что метод сервиса ваобше не запускается)

В чем дело? что я делаю не так?
Re: wcf service, форма в отделном потоке
От: Clickmaker Россия http://relaxander.webest.net/
Дата: 26.11.10 11:52
Оценка:
P>FormFakeKKM.Init — запускает отдельный поток, в котором работает ShowDialog у формы.

а зачем форма именно в отдельном потоке?
Re[2]: wcf service, форма в отделном потоке
От: pumpurumer  
Дата: 26.11.10 12:36
Оценка:
Здравствуйте, Clickmaker, Вы писали:

P>>FormFakeKKM.Init — запускает отдельный поток, в котором работает ShowDialog у формы.


C>а зачем форма именно в отдельном потоке?


Ну эта форма должна работать независимо от всего остального приложения — в форме логи работы торгового оборудования, в целях отладки.
Re[3]: wcf service, форма в отделном потоке
От: Clickmaker Россия http://relaxander.webest.net/
Дата: 26.11.10 12:39
Оценка:
P>Ну эта форма должна работать независимо от всего остального приложения — в форме логи работы торгового оборудования, в целях отладки.

для этого достаточно не делать ShowDialog.
сервису она мешать не будет
Re[4]: wcf service, форма в отделном потоке
От: pumpurumer  
Дата: 26.11.10 12:49
Оценка:
Здравствуйте, Clickmaker, Вы писали:


P>>Ну эта форма должна работать независимо от всего остального приложения — в форме логи работы торгового оборудования, в целях отладки.


C>для этого достаточно не делать ShowDialog.

C>сервису она мешать не будет

Ну и она виснет сразу-же почему-то. мб у меня каким-то неправильным образом настроен сервис, или главный поток приложения?
Re[3]: wcf service, форма в отделном потоке
От: HowardLovekraft  
Дата: 26.11.10 13:01
Оценка:
Здравствуйте, pumpurumer, Вы писали:

P>в форме логи работы торгового оборудования, в целях отладки.

Я задам, наверное, странный вопрос, но... почему логи в целях отладки не писать в более подходящее место (файл, базу и т.д.)?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.