Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
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. Что я делаю неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=872&tid=1389279]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 291ms |
| total: | 387ms |

| 0 / 0 |
