Background: In the end, a third party will install software on the server that will communicate with my service on another server. This third party does not have emulation / test software, so they gave me their .wsdl and suggested using SoapUI to check their side with my service. My service is independent (not in iis) written in VB, but if you have a suggestion for changing the code, it can be in C #.
Problem: I cannot force SoapUI to successfully send XML messages encoded in soap to my service. The end result I want is to get my breakpoint in my function in my WCFLibrary that implements my contract with my interface
Additional Information: After much trial and error, I think my endpoints are configured correctly. This is my first venture with WCF, and before I started, I went to the initial MSDN tutorial for a calculator. When I start this service, I can send a message and get a valid response from SoapUi, but it did not hit the breakpoint in visual studio, which does not bode well for me. In my research, I saw that people suggest using Fiddler to help fix this problem. I was able to get this working, but the error that I see in the violinist is basically the same thing that I see in SoapUI
What I'm trying to send to the service.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>**Redacted**</wsa:Action>
<wsa:To>http://localhost:8000/UnsolicitedListenerLib/Service1</wsa:To>
</soap:Header>
<soap:Body>
<tem:**Redacted**/>
</soap:Body>
</soap:Envelope>
Repossoss I get:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
<s:Subcode>
<s:Value xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc">a:BadContextToken</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-US">The message could not be processed. This is most likely because the action **Redacted** is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The security context token would be invalid if the service aborted the channel due to inactivity. To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint binding.</s:Text>
</s:Reason>
</s:Fault>
</s:Body>
</s:Envelope>
: , " . , " " Redacted? - , , , SoapUI WSDL, , , Soap, . , . - . " text/xml; charset = utf-8 ", my -" application/soap + xml; charset = utf-8"
:. , , , wsdl . SDK wsdl , SoapUI , , ,
HTTP/1.1 415 , "text/xml; charset = UTF-8" "application/soap + xml"; = UTF-8'.
-: 0
: Microsoft-HTTPAPI/2.0
: , 03 2014 14:00:25 GMT
.
: , , ? , , , wcf, , , .
/ ,
Send:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mic="http://Microsoft.ServiceModel.Samples">
<soapenv:Header/>
<soapenv:Body>
<mic:Add/>
</soapenv:Body>
</soapenv:Envelope>
:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AddResponse xmlns="http://Microsoft.ServiceModel.Samples">
<AddResult>0</AddResult>
</AddResponse>
</s:Body>
</s:Envelope>
App.config/My, - , , , - .
App.Config WebService: (, )
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource"
switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch"
value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
</sharedListeners>
</system.diagnostics>
<system.web>
<compilation debug="true"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="Service1Behavior">
<serviceMetadata httpGetEnabled="True"/><serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="wsHttpBindingNoSecurity">
<security mode="None">
<transport clientCredentialType="None" />
<message establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="UnsolicitedListenerLib.Service1" behaviorConfiguration="Service1Behavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/UnsolicitedListenerLib/Service1"/>
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingNoSecurity" contract="UnsolicitedListenerLib.UnsolictedListenerService.IService1">
<identity><dns value="localhost"/></identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
App.Config () : ( )
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
</sharedListeners>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
SoapUI - / App.Config
, , .
Raw Fiddler Headers
POST /UnsolicitedListenerLib/Service1 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="http://tempuri.org/IService1/orderstatus"
Content-Length: 890
Host: localhost:8000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
. , XML- .