2010-12-01 9 views
3

Ich versuche, einen WCF-Dienst mit dem Basichttpbinding-Endpunkt vom WCF-Testclient zu testen. Ich kann Methoden testen, die ich nicht passieren Parameter ohne Frage, aber wenn ich einen Parameter ich folgende Fehlermeldung erhalten, weitergeben müssen:.Net 4.0 WCF-Dienst beim Übergeben von Parametern fehlgeschlagen

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)

Aufgrund der Tatsache, kann ich telefonieren Methoden, um diese Fehler parameterlos macht keinen Sinn für mich.

[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 
} 
+0

Können Sie Ihre Service- und Datenverträge veröffentlichen? – scmccart

+0

Ah, ich habe das vorher nicht bemerkt, aber ich sehe "Ein Fehler ist beim Ausführen der Befehlsdefinition aufgetreten", benutzen Sie zufällig das Entitätsframework? – scmccart

+1

Und was ist die innere Ausnahme? Haben Sie das Attribut [DataContract] für Ihre Datenklassen (ClientDetailViewModel und andere) festgelegt? –

Antwort

0

Der Fehler kam von woanders in der Anwendung ... WCF-Fehler sind nicht die größten! :)

+1

Ich weiß, das ist ein ziemlich alter Kommentar, aber können Sie die Quelle Ihrer Fehler beschreiben? –

+0

+1 brauchen eine Beschreibung, woher es stammt? –

1

Es könnte Serialisierung Fehler sein - prüfen Sie, ob Sie [Datacontract] oder [Serializable] bei Ihrer Rückkehr Klasse SelectClientSearch_Result.

1

Es kann sich lohnen, versuchen Sie Folgendes in die web.config hinzufügen:

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

Wenn das nicht funktioniert, kann man versuchen, die oben und Entfernen der Elemente hinzufügen: <host></host> (Idee vom letzten Link, den ich verlinkt habe)

Das Hinzufügen der folgenden zu der web.config kann helfen.

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

Die Seiten, die ich gelesen habe, sind:

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 den WCF-Dienst erwähnt genau wie ein ASMX-Dienst verhalten, die, warum ich dachte, es ist von Bedeutung sein können.

EDIT:

Kann eine schnelle lesen wert? http://support.microsoft.com/kb/958478

+0

Cheers James - aber keine Freude damit. Müssen Sie zu der inneren Ausnahme kommen, um weitere Informationen zu erhalten – littlechris