[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 216
  • Last Modified:

SSL WCF Service Issues - Value cannot be null

This is my first time that I’m trying to setup a service to require SSL connections.  The service is accessible but when I try to run one of the methods (Using both WCF Test Client as well as a Web application) I get this error:


Failed to invoke the service. Possible causes: The service is offline or inaccessible; the client-side configuration does not match the proxy; the existing proxy is invalid. Refer to the stack trace for more detail. You can try to recover by starting a new proxy, restoring to default configuration, or refreshing the service.

Value cannot be null.
Parameter name: context

Server stack trace:
   at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at IeSearchServices.GetOrderStatus(String AccountKey, Int32 ItemId)
   at IeSearchServicesClient.GetOrderStatus(String AccountKey, Int32 ItemId)



I’ve tried many of the different “fixes” online with no luck so far.  Any ideas would be appreciated.  Please let me know if additional information would help.

Thanks,
Greg


Server config file information:

<system.serviceModel>

    <services>

        <service name="eSearchServices.eSearchServices">
        <endpoint address=""
                  binding="basicHttpBinding"
                  bindingConfiguration="secureHttpBinding"
                  contract="eSearchServices.IeSearchServices"/>

        <!--<endpoint address="mex"
                  binding="mexHttpsBinding"
                  contract="IMetadataExchange" />-->
          
      </service>

    </services>

    <bindings>

      <basicHttpBinding>
        <binding name="secureHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </basicHttpBinding>
     

    </bindings>

    <behaviors>
      <serviceBehaviors>
        <behavior>
         <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
  </system.serviceModel>

Open in new window

0
Greg_L_WER
Asked:
Greg_L_WER
  • 3
  • 3
1 Solution
 
YZlatCommented:
try adding behaviorConfguration attribute to your <service> element:

<service name="eSearchServices.eSearchServices" behaviorConfiguration="secureBehavior">

Open in new window


and add a behavior names "secureBehavior" to <behaviors> element. Try something like this:

<behavior name="secureBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
          <serviceAuthenticationManager authenticationSchemes="Basic"/>
        </behavior>

Open in new window

0
 
Greg_L_WERAuthor Commented:
Thanks for the quick reply YZlat!  Unfortunately I'm still getting the same error message...This is the updated config section.  I turned on includeExceptionDetailInFaults to help troubleshoot for now.

Thanks again,
Greg


<system.serviceModel>

    <services>

      <service name="eSearchServices.eSearchServices" behaviorConfiguration="secureBehavior">
        <endpoint address=""
                  binding="basicHttpBinding"
                  bindingConfiguration="secureHttpBinding"
                  contract="eSearchServices.IeSearchServices"/>

      </service>
    </services>

    <bindings>

      <basicHttpBinding>
        <binding name="secureHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </basicHttpBinding>

    </bindings>

    <behaviors>
      <serviceBehaviors>

        <behavior name="secureBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <!--<serviceDebug includeExceptionDetailInFaults="false"/>-->
          <serviceAuthenticationManager authenticationSchemes="Basic"/>
        </behavior>

      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
    
  </system.serviceModel>

Open in new window

0
 
Greg_L_WERAuthor Commented:
Thank again YZlat!  Looks like it did work after-all.  Your changes led me to another issue that once I solved it seems to have everything working properly.  One follow-up question for you... how can I check that the information being sent/received from the service is in fact encrypted?

 Thanks,
 Greg
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
YZlatCommented:
What happens if you look at it in fiddler?
0
 
YZlatCommented:
Also you could try enabling message logging
0
 
Greg_L_WERAuthor Commented:
Hmmm... not a program that I've used yet... looks promising.  I'll give it a try.  Thanks for the idea and help earlier :)
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now