Je dispose d'un service Web très basique utilisant WCF (C#, .NET 4.0) pour renvoyer un message Hello.Configurer le modèle de service pour WCF
Le déploiement sous IIS 7 et en cours d'exécution, il est ok, mais quand je fais svcutil.exe http://localhost:4569/Service.svc?wsdl
par le CMD pour tester le webservice je reçois:
the remote server returned an error: 415 cannot proccess the message because the content type 'aplication/soap+xml charset=utf8' was not the expected type 'text/xml charset=utf8'
Lorsque vous essayez d'ajouter la référence de service (pour créer un client) Je reçois
An existing connection was forcibly closed by the remote host Metadata contains a reference that cannot be resolved: 'http://localhost:4569/Service.svc'. Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:4569/Service.svc . The client and service bindings may be mismatched. The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..
Je suis assez sûr que le problème est sous mon fichier web.config:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="Service">
<endpoint name="soap"
address="http://localhost:4569/Service.svc"
binding="basicHttpBinding"
contract="IService" />
<endpoint name="mex" address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</services>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Quoi qu'il en soit
, voici mon code:
IService.cs:
[ServiceContract]
public interface IService
{
[OperationContract]
string getMessage();
}
Mon service.cs a la méthode
public class Service : IService
{
public string getMessage()
{
return "Ola servico";
}
}
Je ne sais vraiment pas ce qui se passe, a fait quelques tests après quelques recherches mais pas de succès.
Service.svc
<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>
Vous ne nous montrez pas les parties ** intéressantes ** (et ** importantes **) de votre config! La section '' de '' côté serveur et le contenu du fichier * .svc! S'il vous plaît ajouter ces - sinon nous sommes laissés deviner au mieux .... –
est-ce le fichier de configuration complet? les services, les liaisons et les points de terminaison sont-ils définis dans le code? – MLT
Le message d'erreur indique que vous mélangez SOAP et REST. Il semble que vous voulez récupérer un WSDL, mais il semblerait que vous utilisez la liaison REST ('webHttpBinding') .... –