Регистрация информации о клиенте, делающем запросы к веб-службе WCF (WAS) - PullRequest
1 голос
/ 12 января 2010

У меня есть веб-сервис WCF, на самом деле несколько веб-сервисов, все используют net.tcp и размещены в IIS через WAS. Несколько клиентов вызывают эти службы, все они известны, но не могут контролироваться (то есть я не могу изменить их код и, следовательно, я также не могу изменить службы). Некоторые из этих клиентов не очень приятны в обслуживании и вызывают много ошибок, и я хотел бы выяснить, какие из них являются проблемными. Я не могу посмотреть переданные учетные данные, поскольку они не используют аутентификацию, я не могу использовать ip / port, так как они все приходят из одного места. Теперь моя задача - найти какой-то способ различения этих клиентов, например, глядя на вызывающую сборку или что-то в удаленной системе, которая идентифицирует клиента. Кто-нибудь знает о такой информации? У меня есть доступ к журналу IIS, средству просмотра событий, файлам трассировки и самим службам (я могу поместить в код все, что не прерывает нормальный поток).

Ответы [ 3 ]

2 голосов
/ 12 января 2010

Ознакомьтесь со встроенными механизмами ведения журнала и трассировки WCF:

Много больше, когда вы ищете "WCF, трассировка, ведение журнала". Поддержка, встроенная прямо в WCF, довольно обширна: вы можете легко регистрировать сообщения, видеть, откуда они пришли, анализировать их, а также включать и выключать их по мере необходимости.

1 голос
/ 12 января 2010

Вы можете написать свое собственное поведение для проверки полученных вами сообщений; образец можно найти здесь: Написание инспектора сообщений WCF и Простое поведение службы WCF: проверка сообщений с помощью вывода отладки

0 голосов
/ 12 января 2010

Кажется, что ваша проблема не с механизмом регистрации; это найти способ отличить клиентов.

Если вы не можете контролировать код клиентов, можете ли вы хотя бы изменить URL-адрес, который они используют для конечной точки? Если это так, то я рекомендую вам предоставить службу по нескольким адресам конечных точек, а затем каждому клиенту использовать уникальный адрес. Адрес будет использоваться в качестве прокси для клиента.

...