Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.09.2006, 11:52
|
|||
|---|---|---|---|
|
|||
Wse 2.0 -> Wse 3.0 Настройка Custom Policy Assertion |
|||
|
#18+
Привет всем, Был некий Web сервис написанный с использованием WSE 2.0. Необходимо было написать систему логинга. Для этого я перехватывал SOAP сообщения с помощью фильтров. Теперь необходимо мигрировать на WSE 3.0. Там используется немного иная техника. Прочитав вот это http://msdn.microsoft.com/msdnmag/issues/06/04/ServiceStation/ взясля переделовать свои фильтры. Для этого объявил класс PolicyAssertion public class FiltersAssertion : PolicyAssertion { public FiltersAssertion() : base() { WriteToEventLog("Constructor", EventLogEntryType.Information); } public override void ReadXml(XmlReader reader, IDictionary<string, Type> extensions) { //base.ReadXml(reader, extensions); //reader.ReadEndElement(); WriteToEventLog("Read XML", EventLogEntryType.Information); } public override SoapFilter CreateClientInputFilter(FilterCreationContext context) { WriteToEventLog("CreateClientInputFilter", EventLogEntryType.Information); return null; } public override SoapFilter CreateClientOutputFilter(FilterCreationContext context) { WriteToEventLog("CreateClientOutputFilter", EventLogEntryType.Information); return null; } public override SoapFilter CreateServiceInputFilter(FilterCreationContext context) { WriteToEventLog("CreateServiceInputFilter", EventLogEntryType.Information); return null; //return new SessionLoggerInputFilter(); } public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context) { WriteToEventLog("CreateServiceOutputFilter", EventLogEntryType.Information); return null; //return new SessionLoggerOutputFilter(); } private void WriteToEventLog(string strLogEntry, EventLogEntryType eType) { string strSource = "Division Web Service"; //name of the source string strLogType = "Application"; //type of the log string strMachine = "."; //machine name EventLog eLog = new EventLog(strLogType, strMachine, strSource); eLog.WriteEntry(strLogEntry, eType, 1000); } } Поскольку у меня стоит developer edition и я не могу сделать attach to process для aspnet_wp.exe я пишу сообщения в event manager. В конфигурацонном файле сервиса пишу так: <extensions> <extension name="loggerAssertion" type="SessionLogger.Filters.FiltersAssertion, SessionLoggerFilters"/> </extensions> <policy name="logger"> <loggerAssertion/> </policy> Проблема в том, что при запуске моего сервиса начинает бесконечно вызываться метод ReadXml (рекурсивно?) или пара конструктор — ReadXml. Что я делаю неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1389279]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 360ms |

| 0 / 0 |
