Solved

SSL WCF Service Issues - Value cannot be null

Posted on 2016-09-21
6
67 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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
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

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

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

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

773 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