Я использую wcf 4 и пытаюсь прозрачно передавать контекстную информацию между клиентом и сервером.wcf - передать контекст в заголовки
Я смотрел на поведение и смог пройти мимо. Моя проблема заключается в том, как передать контекст, полученный во входящих заголовках, другим службам, которые могут быть вызваны службой.
В служебном поведении я перехватываю сообщение и читаю заголовки, но не знаю, где разместить эти данные для следующего вызова службы, который может выполнить текущая служба.
То, что я ищу что-то вроде:
public void DoWork()
{
var someId = MyContext.SomeId;
//do something with it here and call another service
using(var proxy = GetProxy<IAnotherService>())
proxy.CallSomeOtherMethodThatShouldGetAccessTo_ MyContextualObject();
}
Если хранить заголовки в потоке локального хранилища я мог бы иметь проблемы из-за нитку маневренности (не уверен, что это происходит за пределами ASP.NET, ака таможенной службы хосты). Как бы вы реализовали код MyContext
в приведенном выше коде.
Я выбрал MyContext вместо прямого доступа к заголовкам, потому что инициатором вызова службы может быть не служба, в этом случае MyContext поддерживается HttpContext, например, для хранения.
Извините, я не сделал это ясно. Я говорил о звонках, которые служба будет предоставлять другим службам. Мне нужно передать информатину. Как бы вы это сделали, не заглядывая в заголовки в методе обслуживания (иначе известный код). –
Использование OperationContextScope также бесполезно. –
Я не думаю, что есть какой-то другой способ, чем считывать заголовки comnig с первого вызова и вставлять их обратно в заголовок второго исходящего вызова. –