Solved

SSL WCF Service Issues - Value cannot be null

Posted on 2016-09-21
6
56 Views
Last Modified: 2016-09-21
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
Comment
Question by:Greg_L_WER
  • 3
  • 3
6 Comments
 
LVL 35

Accepted Solution

by:
YZlat earned 500 total points
ID: 41809460
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
 

Author Comment

by:Greg_L_WER
ID: 41809531
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
 

Author Closing Comment

by:Greg_L_WER
ID: 41809652
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 35

Expert Comment

by:YZlat
ID: 41809758
What happens if you look at it in fiddler?
0
 
LVL 35

Expert Comment

by:YZlat
ID: 41809762
Also you could try enabling message logging
0
 

Author Comment

by:Greg_L_WER
ID: 41809764
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now