Was ist der Unterschied zwischen einer WCF-Dienstanwendung und einer WCF-Dienstbibliothek?

118

Ich entwickle einen WCF-Webdienst und habe dazu die WCF-Dienstanwendungsvorlage verwendet.

Erfüllt die Erstellung einer "WCF-Dienstanwendung" diese Anforderung? Was ist der Vorteil beim Erstellen einer WCF-Dienstbibliothek gegenüber einer WCF-Dienstanwendung?

Ashish Ashu
quelle

Antworten:

148

Eine Dienstanwendung enthält einen Website-Host, der bereits für Sie eingerichtet wurde. Eine Dienstbibliothek ist eine Bibliothek von Diensten, auf die ein Host verweisen und die er starten kann.

Wenn Sie mit einer Dienstbibliothek beginnen (empfohlen), können Sie einen beliebigen Host auswählen (einen Windows-Dienst, IIS / ASP.NET oder sogar eine Konsolenanwendung), und Sie verweisen einfach auf Ihre Bibliothek von Ihrem neuen Host aus. Wenn Sie eine Dienstanwendung auswählen, beschränkt sich Ihr Host nur auf IIS / ASP.NET (dies ist zwar für Ihre Zwecke in Ordnung, schränkt jedoch die Protokolle ein, die Sie verwenden können).

Bearbeiten : Änderungen in IIS, seit ich dies geschrieben habe, ermöglichen eine größere Auswahl an Protokollen für ASP.NET-aktivierte Dienste, sodass die Auswahl einer Dienstanwendung viel weniger einschränkend ist als zuvor.

Anderson Imes
quelle
1
Hat jemand Informationen zu den neuen Protokollen / Bindungen, die beim Hosting auf IIS verfügbar sind?
Allen Rice
@AndersonImes Ich weiß, dass dies ein alter Beitrag ist, aber ich hoffe, Sie können helfen. Ich habe überall gesucht und kann nicht feststellen, ob der WCF-Dienst den Webdienst in .NET 3.5 ersetzen soll und warum die Vorlage in .NET 4 entfernt wurde. Vielen Dank. :)
Chiramisu
2
@Chiramisu WCF bietet viele weitere Vorteile und Flexibilität ... Ich fand diese sehr hilfreich: Codeprojekt Beispiel , Stackoverflow Frage
StoriKnow
@ Sam Danke Sam, sehr hilfreich. WCF kann also im Grunde alles, was ein Webdienst kann und mehr? Irgendwelche Einschränkungen, die ich mich frage ... :)
Chiramisu
1
@Chiramisu gerne helfen! Es gibt immer Einschränkungen, aber WCF hat weit weniger Einschränkungen als ein typischer Webdienst, würde ich mir vorstellen.
StoriKnow
10

Wenn Sie nur ein Projekt haben, sehe ich nur dann zusätzliche Komplexität, wenn Sie sich zum Teufel trennen. Ich habe eine Bibliothek verwendet, als ich bestimmte Anwendungsfälle hatte, in denen ich sowohl in einem Windows-Dienst als auch in IIS hosten musste.

Für IIS können Sie die Klassen und Schnittstellen in eine Bibliothek verschieben, aber Ihre SVC-Dateien im Webprojekt behalten. Sie müssen die SVC-Dateien bearbeiten, um auf die ordnungsgemäß qualifizierten Klassen zu verweisen.

Gary
quelle