powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Wse 2.0 -> Wse 3.0 Настройка Custom Policy Assertion
1 сообщений из 1, страница 1 из 1
Wse 2.0 -> Wse 3.0 Настройка Custom Policy Assertion
    #34009255
matrixman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем,

Был некий 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. Что я делаю неправильно?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Wse 2.0 -> Wse 3.0 Настройка Custom Policy Assertion
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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