Спасибо за ответ! Хотя я в значительной степени согласен с вашим ответом, к сожалению, ограничением проекта является необходимость использования WCF. Я обязательно взгляну на ServiceStack для проектов с менее строгими ограничениями на используемые технологии.

ужно создать службу WCF, которая размещается в IIS, использует http-транспорт и хранит состояние в памяти сервера. Хотя я знаю, что службы с отслеживанием состояния не являются хорошей идеей, последнее ограничение необходимо, чтобы служба работала с устаревшим клиентом.

Моей первой мыслью была сессия asp.net для хранения значений. Я активировал режим совместимости asp.net в своем сервисе, который дал мне доступ к HttpContext, но значения, которые были помещены в объект сеанса, не сохранялись в памяти. Я предполагаю, что это произошло из-за того, что модуль http, который обрабатывает состояние сеанса, был неправильно настроен, но при поиске ответа я наткнулся на сеансы WCF и подумал, что было бы лучше использовать их.

Тем не менее, WCF-сессии кажутся недооцененными и ставят странный набор предварительных требований к службе, и я не смог найти конфигурацию, которая соответствует моим потребностям: должен быть размещен в IIS, должен использовать транспорт http или https и может не отвечайте на проверку подлинности Windows, потому что клиент и сервер не будут частью одного домена. Я пытаюсь добиться этого, используя wsHttpBinding, я слышал, что сеансам WCF требовалось либо сообщение безопасности, либо надежное сообщение, но: - При использовании стандартной привязки, и когда серверы не являются частью одного домена, происходит сбой с «SecurityNegotiationException не был аутентифицирован сервисом »исключение. Это довольно логично, так как он использовал безопасность Windows.

Если я отключаю функцию безопасности завершена, она завершается с «Сессией контракта, но Binding« WSHttpBinding »не поддерживает ее или не настроен для ее поддержки».

Если при отключенной защите я включаю надежное сообщение, я получаю исключение «Проверка привязки завершилась неудачно, поскольку WSHttpBinding не поддерживает надежные сеансы по транспортной безопасности (HTTPS). Не удалось открыть фабрику каналов или хост-службу. Используйте безопасность сообщений для безопасного и надежного обмена сообщениями по HTTP ».

Я пытался включить защиту на транспортном уровне, но, похоже, это не имеет никакого значения для сгенерированной ошибки.

Есть ли какая-либо конфигурация, которая может работать для меня? Или мне просто вернуться к плану использования сессий asp.net?

Ответы на вопрос(2)

Ваш ответ на вопрос