.Net 4.0 WCF Service failing when passing parameters

I am trying to test a WCF service using the basichttpbinding endpoint from the WCF test client. I can test methods that I don't pass parameters to with no issue, but when I need to pass a parameter I get the following 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.

An error occurred while executing the command definition. See the inner exception for details.

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 IErouter.GetClientSearch(String surname, String forename, String street, String postcode) at ErouterClient.GetClientSearch(String surname, String forename, String street, String postcode)

Due to the fact I can make calls to parameterless methods this error makes no sense to me.

[ServiceContract]
public interface IErouter
{
    #region Client Search

    [OperationContract]
    SelectClientSearch_Result[] GetClientSearch(
        string surname, string forename, string street, string postcode);

    #endregion

    #region Changes

    [OperationContract]
    ChangeForBlackBerry[] GetClientChanges(string blackberryPin);

    [OperationContract]
    bool AcceptChange(int changeId, string blackberryPin);

    [OperationContract]
    bool AcknowledgeChange(int changeId, string blackberryPin);

    [OperationContract]
    ChangeForBlackBerry[] GetManagerChangesForShiftType(string blackberryPin, 
        string date, int shiftTypeId);

    [OperationContract]
    ClientDetailChangeViewModel GetClientDetailChange(int changeId);

    #endregion

    #region Client Details

    [OperationContract]
    ClientDetailViewModel GetClientDetails(int clientId);

    [OperationContract]
    SelectUserLevel_Result GetUserLevel(string blackberryPin);

    #endregion

    #region Useful Contacts

    [OperationContract]
    SelectAdminCentreTelNo_Result[] GetAdminCentreTelNos();

    [OperationContract]
    string GetDutyEmail();

    [OperationContract]
    SelectDutyManager_Result[] GetDutyManagerTelNos();

    [OperationContract]
    string GetGhaHandyTelNo();

    [OperationContract]
    SelectHospitalNos_Result[] GetHospitalTelNos();

    [OperationContract]
    string GetICTTelNo();

    [OperationContract]
    string GetMAHMobileTelNo();

    [OperationContract]
    SelectMyManagerNo_Result[] GetMyManagerTelNo(string blackberryPin);

    [OperationContract]
    string GetNHSDirectTelNo();

    [OperationContract]
    string GetOOHEmail();

    [OperationContract]
    string GetOOHTelNo();

    [OperationContract]
    string GetOperationsEmail();

    [OperationContract]
    string GetOperationsTelNo();

    [OperationContract]
    string GetOtherHandyPersonTelNo();

    [OperationContract]
    SelectSWTelNos_Result[] GetSWTelNo();

    #endregion

    #region Gaurdian 24 Visit Monitoring

    [OperationContract]
    string StartVisitMonitoring(int clientId, int activityDuration, 
        string activityText, string blackberryPin);

    [OperationContract]
    string StopVisitMonitoring(int clientId, string activityId, 
        string blackberryPin);

    #endregion
}

Answers


It could be serialization error - check if you have [DataContract] or [Serializable] at your return class SelectClientSearch_Result.


It may be worth trying to add the following to the web.config:

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://host:port"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

If that doesn't work, you could try adding the above and removing the elements: <host></host> (idea from the last link I've linked)

Just adding the following to the web.config may help.

<system.serviceModel>        
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />    
</system.serviceModel>

The sites I've read are:

http://msdn.microsoft.com/en-us/library/aa702682.aspx
http://msdn.microsoft.com/en-us/library/ms731336.aspx
http://community.discountasp.net/showthread.php?t=7719

One mentioned the WCF service behaving exactly like an ASMX service which is why I thought it may be relevant.

EDIT:

May be worth a quick read? http://support.microsoft.com/kb/958478


Need Your Help

How to subset xts object based upon condition

r xts

I have a xts object, now I would like to select all index rows except for a certain period.

Getting Nullpointer at MyAdapter.getView,how to fix?

android textview android-adapter null-pointer

I am trying to add images in navigation drawer, i placed it in the drawable folder with 48*48 size, my string array the string array is in string.xml,

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.