powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF. Подскажите как решить задачу.
13 сообщений из 13, страница 1 из 1
WCF. Подскажите как решить задачу.
    #36436646
Невир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как реализовать задачу: мне нужно на сервисе перехватить к нему запрос от клиента, проанализировать и либо эксепшен обратно отправить либо дать запросу пройти дальше.

Заранее благодарен.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36436741
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
готовый пример, только вместо трейса возбуждайте там экцепшн.
http://blogs.msdn.com/kaevans/archive/2006/10/01/simple-wcf-service-behavior-inspect-messages-through-debug-output.aspx

другое дело, что такой подход хуже, чем использование Fault контракта и своих FaultException.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36436925
Невир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое.

Еще один вопрос. Мне нужно выяснить время на клиенте, в которое был отправлен запрос к сервису. Как это сделать?
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36436955
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
custom message header точно так же с помощью инспекторов
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36438540
Невир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2bured -> Спасибо большое. Очень помогли.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36438662
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а для чего такие решения? под какие задачи это нужно?
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36438942
Невир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiKа для чего такие решения? под какие задачи это нужно?
Я себе такую задачу сам поставил в процессе изучения WCF.
А где конкретно это может понадобится, не могу сказать
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36439296
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НевирЯ себе такую задачу сам поставил в процессе изучения WCF.
А где конкретно это может понадобится, не могу сказать
если можно в краце раскажите. Я сейчас тоже началь изучать данную технологию. просто интересно.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36439562
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невир,

вот собственно ваша задумка. Там всё тривиально.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36439635
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только в случае
Код: plaintext
1.
[ServiceBehavior(ConcurrencyMode =
ConcurrencyMode.Multiple)]
на сервере логика другая нужна.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36439717
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже самое можно сделать, если на Сервере вместо поведения использовать OperationContext
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
//[MyBehavior]    
    public class Service1 : IService1
    {
        public void Foo()
        {
            DateTime timeCreated = OperationContext.Current.IncomingMessageHeaders.GetHeader<DateTime>("TimeCreate", "http://bured");
            MessageHeader<DateTime> myHeader = new MessageHeader<DateTime>(timeCreated);
            MessageHeader standardHeader = myHeader.GetUntypedHeader("TimeCreate", "http://bured");
            OperationContext.Current.OutgoingMessageHeaders.Add(standardHeader);            
            Thread.Sleep(2000);
        }
        
    }
однако с мультиконкуренцией я пока не догнал что лочить.

P.S. С Message было бы конечно проще, однако большинство всё-таки юзают DataContract-ы. Нужно разобраться.
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36442052
Невир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gdsНевирЯ себе такую задачу сам поставил в процессе изучения WCF.
А где конкретно это может понадобится, не могу сказать
если можно в краце раскажите. Я сейчас тоже началь изучать данную технологию. просто интересно.
Я хотел сказать, что не могу придумать конкретную задачу, где это может пригодится =)

2bured-> Спасибо большое. Буду разбираться. Еще вопрос. Я тут столкнулся с следующей проблемой. Байндинг установлен в wsHttpBinding и при обращении к сервису, если время на клиенте отличается больше чем на 5ть минут от времени на сервере, возникает секьюрити исключение.
Хотел аналогично решить эту проблему при помощи мессейдж инспектора, но этот секьюрити анализирует запрос раньше чем инспекторы выполняются. Хочется в результате выдать свой собственный эксепшен при возникновении такой проблемы. Как можно это сделать?
...
Рейтинг: 0 / 0
WCF. Подскажите как решить задачу.
    #36452143
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невир,

то же самое, но на сервере вместо МессаджИнспектора в методе проверяем и возбуждаем исключение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public void Foo()
    {
        DateTime timeCreated = OperationContext.Current.IncomingMessageHeaders.GetHeader<DateTime>("TimeCreate", "http://temp.org");
        DateTime timeReceived = DateTime.Now;
        TimeSpan ts = timeReceived - timeCreated;
        if (ts.Seconds > 1)
        {            
            FaultException faultEx = new FaultException(
                new FaultReason(String.Format("TimeOut Exception. Time Created message: {0}, Time Received message: {1}", timeCreated, timeReceived)),
                new FaultCode("1"));
            throw faultEx;
        }
    }
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF. Подскажите как решить задачу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]