Je travaille sur une application et je dois lui fournir une interface web. Je pensais à utiliser WCF pour fournir un service pour l'interface web, et auto-héberger à la fois avec mon application (pas d'IIS). Maintenant, si ces deux n'utilisent pas le même port, le navigateur va se plaindre de XSS ...WCF d'auto-hébergement avec WebServer auto-hébergeant (HTTPListener) sur le même port. Possible?
Est-ce possible? Est-ce une bonne idée?
EDIT Après quelques recherches, j'ai réussi à le faire fonctionner.
Voici le code d'auto-hôte webservice:
var serviceHost = new ServiceHost(typeof(CalculatorService));
serviceHost.AddServiceEndpoint(typeof (ICalculator), new WSHttpBinding(), "http://localhost:8000/webservice");
serviceHost.Open();
Console.WriteLine("CalcService is running.");
Console.WriteLine("Press Enter to terminate the service.");
Console.ReadLine();
serviceHost.Close();
Et voici le code hébergeur:
var listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8000/webconsole/");
listener.Start();
Console.WriteLine("listening");
while(true)
{
HttpListenerContext context = listener.GetContext();
/* ... */
}
Pour le webservice de travailler, je devais faire this
Avez-vous un exemple de cela? J'ai essayé quelque chose mais ça n'a pas marché. Tout ce qui a été démarré en second lieu (wcf ou serveur web) se plaignait ... – subb
Quel serveur web utilisez-vous? Il doit être basé sur HTTP.SYS (IIS6 + ou HttpListener, etc), et votre service doit être configuré avec un chemin URI que IIS n'a pas saisi (ie, vous ne pouvez pas écouter sur /, il faudra être/Services/Foo ou autre). – nitzmahone
Ça a marché. Je vais ajouter le code au message principal. – subb