Frage

Wir haben einen vorhandenen WCF-Dienst, die Verwendung von wsDualHttpBinding macht Rückrufe an den Client zu ermöglichen. Ich erwäge es netTcpBinding für eine bessere Leistung zu bewegen, aber ich bin ganz vorsichtig bewegt von dem IIS-gehosteten Dienst entfernt (eine „Komfortzone“ wir zur Zeit genießen) in unseren eigenen Windows-Dienst, die es zu hosten. Ich hatte gehofft, wir immer noch diese auf IIS Host könnte 7 aber win2k8 nicht Realität für uns für einige Zeit.

Welche Dinge sollte ich beachten, wenn unsere eigenen Windows-Dienst zu schaffen unsere WCF-Dienst zu hosten? Dinge wie Lebensdauerverwaltung und Anforderung Drosselung sind Funktionen, die frei kommen mit IIS-Hosting so möchte ich auch wissen, wie wir effektiv unsere Service auf unseren eigenen ohne die Bequemlichkeit der mit IIS zu tun, die harte Arbeit für uns hosten kann. Vielen Dank! :)

War es hilfreich?

Lösung

So wie Sie nicht Host kann mit WAS gibt es ein paar Dinge zu verwirklichen.

  • Wenn der Dienst abstürzt es nicht standardmäßig neu gestartet werden (auch wenn Sie dies in Service-Eigenschaften ändern können)
  • IIS wird die Anwendung Pool recyceln, wenn es hängt oder wächst zu groß; Sie müssen dies selbst tun, wenn Sie die gleiche Art von Zuverlässigkeit wollen.
  • Sie müssen ein Konto erstellen für den Dienst unter ausgeführt werden, oder eine der Standarddienste verwenden. Resit die Versuchung, den Dienst als System oder unter einem Administratorkonto ausgeführt werden; wenn Sie einen eingebauten Konto Verwendung NETWORK SERVICE verwenden möchten.
  • Es wird schwieriger, in situ zu debuggen.
  • Betrachten wir einen Fehler Logger wie log4net mit

Nachdem das nun gesagt, dass ich eine WCF / Windows-Dienst Kombination für einen Kunden vor 9 Monaten im Einsatz; es ist stark genutzt und hat nicht ein einziges Mal gestorben.

Sie können Anfrage Drossel in einem Windows-Dienst, es ist Teil der WCF-Konfiguration. Beachten Sie die Standardwerte sehr niedrig sind, ist es wahrscheinlich, dass Sie diese erhöhen müssen.

Andere Tipps

Hosting in einer Windows-Service-Anwendung ( http://msdn.microsoft. com / en-us / library / ms734781.aspx ) ist ein guter Anfang.

Wenn Sie Ihren Dienst auf Vista-Host können Sie auch aus dem Windows-Prozessaktivierungsdienst profitieren können (WAS). WAS ist eine Verallgemeinerung der IIS-Prozess-Aktivierung, die verwendet werden können Prozesse über Nicht-HTTP-Endpunkte (TCP, Named Pipe, MSMQ) zu aktivieren. Um mehr zu erfahren über WCF gehostet in WAR, lesen Sie http://msdn.microsoft. com / en-us / library / ms733109.aspx . Um zu erfahren, wie zu installieren und zu konfigurieren WAR, lesen Sie http://msdn.microsoft. com / en-us / library / ms731053.aspx .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top