Of course, check your action first. It could be misspelled or mistyped.
What can happen is that your BizTalk works fine with a WCF web service,
but then you move the WCF service to a different machine and get the error below.
Apparently, this only happens when the different machine is in a different domain.
<code> <s:Fault xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <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. <br />This is<br /> most likely because the action 'http://YourService/IYourInterface/YourMethod' is incorrect or <br />because the message contains an invalid or expired security context token or because there <br />is a mismatch between bindings. The security context token would be invalid if the service <br />aborted the channel due to inactivity. To prevent the service from aborting idle sessions <br />prematurely increase the Receive timeout on the service endpoint's binding.</s:Text> </s:Reason> </s:Fault> </code>
Add the code below to the web.config for your WCF web service.
<code> <bindings> <wsHttpBinding> <binding name="Binding1"> <security mode="None"> <transport clientCredentialType="None" /> <message establishSecurityContext="false" /> </security> </binding> </wsHttpBinding> </bindings> </code>