none
The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://----/GetConnectorState'. RRS feed

  • Question

  • Hello,

    I am trying to make a SOAP call to a WCF webservice.

    But on the SOAPUI I get below error. But if I see in the WCF trace log the error is as mentioned below.

    Also I am provinding the WCF config that I have used. Please check below the error messeges and the config that I have used.

    Error in SOAPUI:

    The message could not be processed. This is most likely because the action 'http://www.microsoft.com/EnterpriseManagement/ConnectorFramework/IConnectorFramework/GetConnectorState'
     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's binding

    Error in WCF trace LOG:

    </StackTrace><ExceptionString>System.ServiceModel.ActionMismatchAddressingException:
     The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 

    WCF Config:

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>
      <configSections>
        <section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
      <uri>
        <iriParsing enabled="true" />
      </uri>
        <runtime>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
              <assemblyIdentity name="Microsoft.EnterpriseManagement.HealthService" publicKeyToken="31bf3856ad364e35" />
              <publisherPolicy apply="no" />
              <bindingRedirect oldVersion="6.0.4900.0" newVersion="7.0.5000.0" />
            </dependentAssembly>
            <publisherPolicy apply="no" />
            <probing privatePath="" />
          </assemblyBinding>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
              <assemblyIdentity name="Microsoft.Mom.Common" publicKeyToken="31bf3856ad364e35" />
              <publisherPolicy apply="no" />
              <bindingRedirect oldVersion="6.0.4900.0" newVersion="7.0.5000.0" />
            </dependentAssembly>
            <publisherPolicy apply="no" />
            <probing privatePath="" />
          </assemblyBinding>
          <gcConcurrent enabled="false"/>
          <gcServer enabled="true"/> 
        </runtime> 

    <system.diagnostics>
      <sources>
    <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
    <listeners>
       <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
       </add>
       <add name="McfTracing">
      <filter type="" />
       </add>
    </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="Information, ActivityTracing">
    <listeners>
       <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
       </add>
       <add name="McfTracing">
      <filter type="" />
       </add>
    </listeners>
    </source>
      </sources>
      <sharedListeners>
    <add initializeData="c:\log\Microsoft.Mom.Sdk.ServiceHost_tracelog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="McfTracing" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
    <filter type="" />
    </add>
      </sharedListeners>
       </system.diagnostics>
       
        <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddressMcfV3" value="http://wcfDomain:51905/ConnectorFramework" />
        </appSettings>

        <system.serviceModel>
    <bindings>
    <wsHttpBinding>
    <binding name="McfDefaultBinding" maxReceivedMessageSize="2147483647" openTimeout="00:10:00" 
                     closeTimeout="00:10:00" 
                     sendTimeout="00:10:00" 
                     receiveTimeout="00:10:00"  >
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
          maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

                        <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
                        <message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
                    </security> -->
    </binding>
    </wsHttpBinding>
    </bindings>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="ConnectorFrameworkServiceBehavior">
                        <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceThrottling maxConcurrentSessions="1000" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <services>
                <service behaviorConfiguration="ConnectorFrameworkServiceBehavior"
                    name="Microsoft.EnterpriseManagement.ConnectorFramework.ServiceDataLayer.ConnectorFrameworkDataAccess">
                    <endpoint address="mex" binding="mexHttpBinding" name="WsdlPublishing"
                        contract="IMetadataExchange" />
                    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="McfDefaultBinding"
                        name="Main" contract="Microsoft.EnterpriseManagement.ConnectorFramework.IConnectorFramework" />
                </service>
            </services>

    <diagnostics wmiProviderEnabled="true">
            <messageLogging
                 logEntireMessage="true"
                 logMalformedMessages="true"
                 logMessagesAtServiceLevel="true"
                 logMessagesAtTransportLevel="true"
                 maxMessagesToLog="3000"
           />
          </diagnostics>
      
        </system.serviceModel>  
    </configuration>

    Monday, December 18, 2017 9:47 PM

All replies

  • Hi KadamSwati,

    Could you access the service wsdl address?

    Based on your current config, you refer McfDefaultBinding bindingConfiguration, but it has been commented, will you receive any error while accessing the wsdl address?

    I suggest you create a new console app, and then create client code by Adding Service Reference, will it work by calling WCF Service?

    >> System.ServiceModel.ActionMismatchAddressingException:

     The SOAP action specified on the message, '', does not match the HTTP SOAP Action

    Based on this error message, it seems the SOAPAction value is invalid. I suggest you check whether you have added SOAPAction header, and check its value.

    It would be helpful if you could share us your SOAP Request in SopaUI.

    Best Regards,

    Tao Zhou


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Tuesday, December 19, 2017 2:06 AM
  • Hello Tao,

    Thank you for the reply. Here is my updated config and error messages status.

    Please find my current config.xml below.

    Yes..My web service is up and running. I can access wsdl too.

    My SOAP Request is:

    SOAPUI request

    SOAPUI WS-A header:

    SOAPUI WS-A header

    SOAPUI-Header:

    SOAPAction header that I copied from WSDL

    Response I am receving on SOAPUI is:

    The message could not be processed. This is most likely because the action 'http://www.microsoft.com/EnterpriseManagement/ConnectorFramework/IConnectorFramework/GetMonitoringAlerts' 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's binding.

    SOAPUI response..500 Internal Server Error..BadRequestToken

    

    And in the trace log the message I receive is:

    System.ServiceModel.EndpointNotFoundException: There was no channel that could accept the message with action 'http://www.microsoft.com/EnterpriseMa
    nagement/ConnectorFramework/IConnectorFramework/GetMonitoringAlerts'

    Also I see I get EndpointNotFound exception after I add wsa:action header to the SOAPUI.

    If I remove WS-A header from the SOAPUI request the error I get is :

     ActionMismatchAddressingException
    The SOAP action specified on the message, '', does not match the HTTP SOAP Action,   'http:/<------------>/GetConnectorState'.

    SO is it the SOAPAction header that matters or WS-A header?

    Also why that EndpointNotFoundException when I can access wsdl and see my web service is up and running.

    Also I am accessing this webservice from JAVA.So I am not writing any client using .NET appliocation.

    Can you please suggest what could be wrong in this case? Thank you for you time and help.

    Config.xml:

          

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
      <uri>
        <iriParsing enabled="true" />
      </uri>
        <runtime>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
              <assemblyIdentity name="Microsoft.EnterpriseManagement.HealthService" publicKeyToken="31bf3856ad364e35" />
              <publisherPolicy apply="no" />
              <bindingRedirect oldVersion="6.0.4900.0" newVersion="7.0.5000.0" />
            </dependentAssembly>
            <publisherPolicy apply="no" />
            <probing privatePath="" />
          </assemblyBinding>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
              <assemblyIdentity name="Microsoft.Mom.Common" publicKeyToken="31bf3856ad364e35" />
              <publisherPolicy apply="no" />
              <bindingRedirect oldVersion="6.0.4900.0" newVersion="7.0.5000.0" />
            </dependentAssembly>
            <publisherPolicy apply="no" />
            <probing privatePath="" />
          </assemblyBinding>
          <gcConcurrent enabled="false"/>
          <gcServer enabled="true"/> 
        </runtime> 

    <system.diagnostics>
      <sources>
    <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
    <listeners>
       <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
       </add>
       <add name="McfTracing">
      <filter type="" />
       </add>
    </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="Information, ActivityTracing">
    <listeners>
       <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
       </add>
       <add name="McfTracing">
      <filter type="" />
       </add>
    </listeners>
    </source>
      </sources>
      <sharedListeners>
    <add initializeData="c:\log\Microsoft.Mom.Sdk.ServiceHost_tracelog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="McfTracing" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
    <filter type="" />
    </add>
      </sharedListeners>
       </system.diagnostics>

        <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddressMcfV3" value="http://se-scom1.sedemo.local:51905/ConnectorFramework" />
        </appSettings>

        <system.serviceModel>
    <bindings>
    <wsHttpBinding>
    <binding name="McfDefaultBinding" maxReceivedMessageSize="2147483647" openTimeout="00:10:00" 
                     closeTimeout="00:10:00" 
                     sendTimeout="00:10:00" 
                     receiveTimeout="00:10:00"  >
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
          maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    <!--<reliableSession enabled="true" />
    <security mode="None">
            <transport clientCredentialType="None" />
             <message establishSecurityContext="false" />
          </security> -->

    <!-- <security >  
                <message clientCredentialType="Windows"   
                         negotiateServiceCredential="false"  
                         establishSecurityContext="false" />  
       <textMessageEncoding messageVersion="Default" encoding="utf-8" />
              </security> -->
      <!-- <security mode="Message">
                        <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
                        <message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
                    </security> -->
    </binding>
    </wsHttpBinding>
    </bindings>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="ConnectorFrameworkServiceBehavior">
                        <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceThrottling maxConcurrentSessions="1000" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <services>
                <service behaviorConfiguration="ConnectorFrameworkServiceBehavior"
                    name="Microsoft.EnterpriseManagement.ConnectorFramework.ServiceDataLayer.ConnectorFrameworkDataAccess">
                    <endpoint address="mex" binding="mexHttpBinding" name="WsdlPublishing"
                        contract="IMetadataExchange" />
                    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="McfDefaultBinding"
                        name="Main" contract="Microsoft.EnterpriseManagement.ConnectorFramework.IConnectorFramework" />
                </service>
            </services>

    <diagnostics wmiProviderEnabled="true">
            <messageLogging
                 logEntireMessage="true"
                 logMalformedMessages="true"
                 logMessagesAtServiceLevel="true"
                 logMessagesAtTransportLevel="true"
                 maxMessagesToLog="3000"
           />
          </diagnostics>

        </system.serviceModel>  
    </configuration>



    • Edited by KadamSwati Tuesday, December 19, 2017 7:23 AM
    Tuesday, December 19, 2017 6:30 AM
  • Hi KadamSwati,

    I suggest you try below ways:

    1. Add SOAPAction header, but leave it empty.

    2. Add SOAPAction header, set it with action name, may be “GetConnectorState”

    Best Regards,

    Tao Zhou


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Tuesday, December 19, 2017 7:07 AM
  • Hello Tao,

    Can you please check my updated reply above in previous post.

    I tried both ways to include SOAPAction header into the request , that you suggested and both time I keep WS_A header on(With and without SOAPAction header).

    I am still getting the same error..EndpointNotFoundException.

    If I includeWS-A action header then I get EndpointNotFoundException error.

    If Iremove WS_A action header then I get ==>

     ActionMismatchAddressingException
    The SOAP action specified on the message, '', does not match the HTTP SOAP Action,   'http:/<------------>/GetConnectorState'.

    I wonder what does that .EndpointNotFoundException that I mentioned in my reply above  is about? Also what is that badCOntextToken message that I have highlighted in yellow in one of the screenshot in my previous reply?

    Is that a WS-A header or SOAPAction header that matters.

    Please suggest. Thank You.





    • Edited by KadamSwati Tuesday, December 19, 2017 7:51 AM
    Tuesday, December 19, 2017 7:31 AM
  • Hi KadamSwati,

    >> Also I am accessing this webservice from JAVA.So I am not writing any client using .NET appliocation.

    To check whether there is any issue in WCF Web Service, I would suggest you try to access the web service from Java and generate the client using .NET to call the service.

    As you know, this forum is used to discuss about WCF Developing issue, we are not familiar with SoapUI which is a third-party product.

    If it works by .net client, I assume your issue is more related with configuration in SOAPUI. I would suggest you contact SOAPUI Official site for help, they are more familiar with their product.

    Please feel free to let us know your test result by .net client.

    Best Regards,

    Tao Zhou 


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, December 20, 2017 7:07 AM
  • I have also provided the error messeges that I am receiving in WCF trace log. Please ignore the SOAPUI details.Its just means to send the request to the web service. My intention here is not to ask about SOAPUI..But my question is more about the error message I see in the WCF trace log.

    Please suggest what could be the cause of the error that I see in the WCF trace that I have mentioned.

    Wednesday, December 20, 2017 7:22 AM
  • Hi KadamSwati,

    Well, let’s isolate the SOAPUI from your issue.

    After rechecking your post, I did not find how you call WCF Service without SOAPUI.

    If you create a new console app, Add Service Reference, and call WCF Service by generated client code, will you receive any error?

    If there is, I suggest you share us the detail error message, and it would be helpful if you could share us a demo service and the Console app, then we could try to reproduce your issue.

    Best Regards,

    Tao Zhou


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Thursday, December 21, 2017 6:56 AM