2012-05-13 2 views
1

J'ai une solution VS2010 MVC3 appelant 2 services WCF. Tout fonctionne bien sur mon premier ordinateur. J'ai un autre ordinateur où j'ai installé le même OS, même VS, même SQL Server Express, même IIS, ... J'ai copié le code source de ma solution sur ce deuxième ordinateur. Tout fonctionne bien lors de l'exécution de la solution.Impossible de parcourir le service WCF: HTTP 400 mauvaise demande

, mais sur ce second ordinateur:

  • Je ne peux pas accéder à l'URL du service! (1)

  • Je ne peux pas faire une "référence de service de mise à jour"!? (2)

(1) Lorsque je navigue à http: //localhost/PLATONServices/RequestService.svc J'ai obtenu un HTTP400 BAD erreur DEMANDE.

(2) J'ai reçu une erreur de demande avec le statut HTTP 400: MAUVAISE DEMANDE DE MÉTADATE CONTIENT UNE RÉFÉRENCE QUI NE PEUT PAS ÊTRE RÉSOLUE: 'http: //localhost/PLATONServices/RequestService.svc'.

Une idée?

Parce que la source de code est la même sur les deux ordinateurs et tout est OK sur le premier ordinateur, le problème est ailleurs. J'utilise IIS6 sur les deux ordinateurs mais je ne vois pas de différences.

J'ai cherché toute la journée sans succès.

Merci.


MISE À JOUR

Voici la trace de WCF:

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> 
<System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> 
<EventID>131075</EventID> 
<Type>3</Type> 
<SubType Name="Error">0</SubType> 
<Level>2</Level> 
<TimeCreated SystemTime="2012-05-13T08:33:37.1384484Z" /> 
<Source Name="System.ServiceModel" /> 
<Correlation ActivityID="{5d80ddb2-6cf8-4e65-bc9b-3f4b7b880605}" /> 
<Execution ProcessName="w3wp" ProcessID="5280" ThreadID="13" /> 
<Channel /> 
<Computer>THINKPAD</Computer> 
</System> 
<ApplicationData> 
<TraceData> 
<DataItem> 
<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error"> 
<TraceIdentifier>http://msdn.microsoft.com/fr-BE/library/System.ServiceModel.Diagnostics.ThrowingException.aspx</TraceIdentifier> 
<Description>Throwing an exception.</Description> 
<AppDomain>/LM/W3SVC/1/ROOT/PLATONServices-2-129813716146273047</AppDomain> 
<Exception> 
<ExceptionType>System.ServiceModel.ProtocolException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> 
<Message>There is a problem with the XML that was received from the network. See inner exception for more details.</Message> 
<StackTrace> 
at System.ServiceModel.Channels.HttpRequestContext.CreateMessage() 
at System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback) 
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result) 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state) 
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) 
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 
</StackTrace> 
<ExceptionString>System.ServiceModel.ProtocolException: There is a problem with the XML that was received from the network. See inner exception for more details. ---&gt; System.Xml.XmlException: The body of the message cannot be read because it is empty. 
    --- End of inner exception stack trace ---</ExceptionString> 
<InnerException> 
<ExceptionType>System.Xml.XmlException, System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> 
**<Message>The body of the message cannot be read because it is empty.</Message>** 
<StackTrace> 
at System.ServiceModel.Channels.HttpRequestContext.CreateMessage() 
at System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback) 
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result) 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() 
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state) 
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) 
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 
</StackTrace> 
<ExceptionString>**System.Xml.XmlException: The body of the message cannot be read because it is empty.**</ExceptionString> 
</InnerException> 
</Exception> 
</TraceRecord> 
</DataItem> 
</TraceData> 
</ApplicationData> 
</E2ETraceEvent> 
+0

sont la Composants liés WCF installés sur la deuxième machine? Ceux-ci sont configurés à partir de la boîte de dialogue "Activer ou désactiver les fonctionnalités Windows", qui se trouve dans "Ajout/Suppression de programmes" sous Windows. Ils sont généralement sous la section "Microsoft .Net Framework 3.5.1". – GCaiazzo

+0

J'ai installé exactement la même chose que mon autre ordinateur. J'essaie également d'installer "Activation HTTP WCF" sous "Microsoft .Net Framework 3.5.1" dans "Activer ou désactiver les fonctionnalités Windows" mais sans corriger le problème. Merci quand même. – Bronzato

+0

Avez-vous activé/regardé les journaux de suivi de service? Cela devrait vous dire ce qui échoue – SCB

Répondre

Questions connexes