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

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

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

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

вот собственно ваша задумка. Там всё тривиально.
...
Рейтинг: 0 / 0
29.01.2010, 20:35
    #36439635
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Подскажите как решить задачу.
Вот только в случае
Код: plaintext
1.
[ServiceBehavior(ConcurrencyMode =
ConcurrencyMode.Multiple)]
на сервере логика другая нужна.
...
Рейтинг: 0 / 0
29.01.2010, 22:37
    #36439717
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Подскажите как решить задачу.
тоже самое можно сделать, если на Сервере вместо поведения использовать 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
01.02.2010, 13:28
    #36442052
Невир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Подскажите как решить задачу.
gdsНевирЯ себе такую задачу сам поставил в процессе изучения WCF.
А где конкретно это может понадобится, не могу сказать
если можно в краце раскажите. Я сейчас тоже началь изучать данную технологию. просто интересно.
Я хотел сказать, что не могу придумать конкретную задачу, где это может пригодится =)

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

то же самое, но на сервере вместо МессаджИнспектора в методе проверяем и возбуждаем исключение
Код: 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
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF. Подскажите как решить задачу. / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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