"WCF Getting Started" MSDN Учебное пособие Проблема - PullRequest
0 голосов
/ 18 января 2009

Возможно, было найдено решение исходной проблемы (ниже). Я закомментировал

<identity> 
    ...
</identity>

тег в файле app.config для клиента. Но я не уверен, если это вызовет другие проблемы, если это так, кто-то может дать мне знать?


Я следовал учебному пособию Начало работы на MSDN для WCF.

Я использую Visual Studio.net 2008 на Vista x64. Сервисная программа работает просто отлично. Однако у клиента возникают проблемы.

Когда я запускаю клиент, я получаю это исключение:

SecurityNegotiationException не было обработано SOAP согласование безопасности с 'http://localhost:8000/ServiceModelSamples/Service/CalculatorService' для цели 'http://localhost:8000/ServiceModelSamples/Service/CalculatorService' не удалось. См. Внутреннее исключение для более подробной информации.

Внутреннее сообщение об исключении говорит:

"Сбой согласования интерфейса поставщика поддержки безопасности (SSPI)."

Мой код почти такой же, как и в примере. Я никогда ничего не делал с веб-сервисами, WCF или чем-то подобным. Кто-нибудь знает, как я мог бы исправить это? Спасибо.

Редактировать - я забыл упомянуть, где выбрасывается исключение ... В основном методе клиента:

CalculatorClient client = new CalculatorClient();

double value1 = 100.00;
double value2 = 15.99;
double result = client.Add(value1, value2); //This is the line that throws the error

//...

Я добавил client.Open (); сразу после инициализации клиента, потому что я искал в Google, и у кого-то тоже были проблемы, и это помогло ему, но когда я это сделал, то же исключение выдается на новой строке.

Ответы [ 4 ]

2 голосов
/ 18 января 2009

Сбой SSPI является ошибкой согласования безопасности, связанной с Kerberos. Вы находитесь в домене, и у вас могут возникнуть проблемы со связью с контроллером домена прямо сейчас? Или есть другая причина, по которой вы не смогли бы пройти аутентификацию в данный момент?

0 голосов
/ 12 июня 2011

Я также столкнулся с этой ошибкой, следуя инструкции Microsoft http://msdn.microsoft.com/en-us/library/ms734712.aspx

Мой ноутбук подключен к домену, который в данный момент недоступен. Основываясь на том, что я нашел здесь, я вошел в файл app.config клиента и решил проблему, удалив userPrincipleName.

Это:

            <identity>
                <userPrincipalName value="user@contoso.com" />
            </identity>

стали:

            <identity>
            </identity>

А потом я перекомпилировал клиентское приложение, и все заработало.

0 голосов
/ 08 декабря 2010

У меня тоже была эта ошибка. В моем случае это было вызвано разделом <identity> в файле Web.config на клиенте. В разделе <userPrincipalName value="xxx@yyy.com" /> есть запись, которая была перезаписана чужим значением идентификатора, когда я получил файл из TFS. Эта запись в основном идентифицирует вас, поэтому, если вы находитесь в сети, это должно совпадать с идентификатором входа в сеть.

0 голосов
/ 13 августа 2010

В атрибуты вашего контракта на обслуживание добавьте следующие строки

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...