2010-04-05 4 views
2

Я довольно новичок в SOAP, так что легко на меня. Я пытаюсь настроить службу SOAP, который принимает следующий формат заголовка:Настройка заголовка в SOAP с ASP.NET 3.5 WCF

<soap:Header> 
    <wsse:Security> 
     <wsse:UsernameToken wsu:Id='SecurityToken-securityToken'> 
     <wsse:Username>Username</wsse:Username> 
     <wsse:Password>Password</wsse:Password> 
     <wsu:Created>Timestamp</wsu:Created> 
     </wsse:UsernameToken> 
    </wsse:Security> 
</soap:Header> 

Приложение Я включения этой службы в это 3,5 веб-приложений ASP.NET и я уже настроить SOAP конечной точки с использованием WCF. Я установил базовый сервис, чтобы убедиться, что WCF работает, и он работает нормально (без учета заголовка). Я слышал, что выше формат следует WS-Security, поэтому я добавил WsHttpBinding в web.config:

<service name="Nexternal.Service.XMLTools.VNService" 
     behaviorConfiguration="VNServiceBehavior"> 
    <!--The first endpoint would be picked up from the confirg 
    this shows how the config can be overriden with the service host--> 
    <endpoint address="" 
      binding="wsHttpBinding" 
      contract="Nexternal.Service.XMLTools.IVNService"/> 
</service> 

Я скачал тестовую (SoapUI) и вставить в тестовое сообщение с указанным выше заголовком и он вернулся с ошибка 400 Bad Request.

... для чего это стоит, я запускаю Visual Studio 2008 с помощью IIS7.

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

ответ

3

Выяснил это. Я смог настроить то, что было создано в WSDL, используя MessageContracts (http://msdn.microsoft.com/en-us/library/ms730255.aspx). Это позволило мне указать формат заголовка. Для каждого узла, содержащего дочерние узлы, я создал класс для представления этого узла и использовал инструменты сериализации .NET (например, XmlElementAttribute, XmlArrayAttribute и т. Д.), Чтобы указать, как это должно быть отражено в сгенерированном WSDL. DataContract также можно использовать, хотя из моего понимания DataContract был предназначен только для базовых форматов и не позволял вам действительно погрузиться в то, как он отформатирован.

Надеюсь, это поможет любому, у кого есть подобные проблемы.

Если кто-то, кто знает больше о SOAP, обнаруживает недостаток, пожалуйста, дайте мне знать. Приветствуется ввод.