Chaque fois que mon programme s'exécute vs ajoute la configuration par défaut à mon fichier app.config. À cette exécution, cela fonctionne bien, mais à la prochaine exécution, il essaie réellement de lire la configuration. Le problème est que la configuration par défaut a des erreurs, il ajoute l'attribut "Adresse", mais les attributs ne sont pas autorisés à avoir des majuscules, donc il lance une exception.Comment désactiver la configuration WCF générée automatiquement
Cela signifie que je dois enlever la mauvaise section à chaque passage!
J'ai essayé de configurer le fichier .config mais cela donne des erreurs.
Voici le code que j'utilise pour héberger le serveur:
private static System.Threading.AutoResetEvent stopFlag = new System.Threading.AutoResetEvent(false);
ServiceHost host = new ServiceHost(typeof(Service), new Uri("http://localhost:8000"));
host.AddServiceEndpoint(typeof(IService), new BasicHttpBinding(), "ChessServer");
host.Open();
stopFlag.WaitOne();
host.Close();
Voici le code client qui appelle le serveur:
ChannelFactory<IChessServer> scf;
scf = new ChannelFactory<IService>
(new BasicHttpBinding(), "http://localhost:8000");
IService service = scf.CreateChannel();
Merci pour toute aide. Editer: Désolé, cela m'a pris tellement de temps, j'ai essayé d'utiliser DualWSHttpBinding à la place (puisque j'ai vraiment besoin du serveur pour appeler les méthodes client de toute façon), mais génère toujours le fichier de configuration. Voici l'ensemble du fichier de configuration généré automatiquement:
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Chess.ChessService">
<endpoint Address="" binding="wsHttpBinding" contract="Chess.IChessServer">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint Address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<Add baseAddress="http://localhost:8732/Design_Time_Addresses/Chess/ChessService/" />
</baseAddresses>
</host>
</service>
<service name="Chess.ChessClient">
<endpoint Address="" binding="wsHttpBinding" contract="Chess.IChessClient">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint Address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<Add baseAddress="http://localhost:8732/Design_Time_Addresses/Chess/ChessClient/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
Ah oui merci, était un peu perdu sur ce point: P – MrFox