Произошла ошибка при создании документа XML при использовании сквозной аутентификации Windows - PullRequest
1 голос
/ 23 июня 2010

Я настроил базовую службу HTTP WCF, и мое приложение в IIS настроено на использование проверки подлинности Windows.

Поэтому привязки имеют следующие параметры безопасности:

<security mode="TransportCredentialOnly">
    <transport clientCredentialType="Windows" proxyCredentialType="None" />
    <message clientCredentialType="Certificate"/>
</security>

Каждоеконтракт операции имеет следующий атрибут

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]

, а класс сервиса имеет следующий атрибут для обеспечения совместимости asp

[AspNetCompatibilityRequirements(RequirementsMode = 
                              AspNetCompatibilityRequirementsMode.Allowed)]

Проверка подлинности Windows передается службе WCF правильно, так как я могуувидеть / сгенерировать WSDL.Однако, когда я вызываю операцию в моей службе WCF, я получаю следующую ошибку:

[FaultException`1: There was an error generating the XML document.]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,
                                                        IMessage retMsg) +4767763
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, 
                                                        Int32 type) +1725
   XXXX.Service() +0
   XXXX.Service() +329
   XXXX.Service() +747
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, 
                                                     Object t,EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, 
                                    Boolean includeStagesAfterAsyncPoint) +3048

Это не первый раз, когда я вижу ошибку Произошла ошибка при создании документа XML. Я хочу знать, что может быть причиной этого?Служба отправляет данные в зашифрованном виде, и клиент не понимает их, потому что они неправильно настроены?

1 Ответ

1 голос
/ 24 июня 2010

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

http://blogs.msdn.com/b/pedram/archive/2008/01/25/wcf-error-handling-and-some-best-practices.aspx

У меня также естьнашла запись в блоге Майка Таулти, которая очень хороша для включения входа в WCF

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2005/12/15/5662.aspx

Надеюсь, это поможет.

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