Ошибка «Объект доступен только для чтения» при установке ClientCredentials в WCF - PullRequest
18 голосов
/ 14 октября 2008

У меня есть прокси-объект, сгенерированный Visual Studio (на стороне клиента) с именем ServerClient. Я пытаюсь установить ClientCredentials.UserName.UserName / Password перед открытием нового соединения, используя этот код:

InstanceContext context = new InstanceContext(this);

m_client = new ServerClient(context);
m_client.ClientCredentials.UserName.UserName = "Sample";

Как только код попадает в строку UserName, происходит сбой с ошибкой «Объект доступен только для чтения». Я знаю, что это может произойти, если соединение уже открыто или повреждено, но на данный момент я еще не вызвал context.Open ().

Я настроил привязки (в которых используется netTcpBinding) для использования Message в качестве режима безопасности, а для MessageClientCredentialType установлено значение UserName.

Есть идеи?

Ответы [ 11 ]

0 голосов
/ 14 октября 2008

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

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

Что движет использованием InstanceContext?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...