Wie funktioniert ein Service-Host in WCF mit der Konfiguration aus web.config oder app.config? Wenn ich einen Service-Host erstelle, gebe ich nur eine URL im Service-Host-Konstruktor und der Klasse des Service an.
Aber in der app.config oder web.config habe ich eine andere Liste von Endpunkten, jeder mit seiner eigenen spezifischen URL. Wie geht die WCF mit dieser Situation um? Welchen Endpunkt braucht er aus der app.config oder web.config?
Die Adresse des Endpunkts ist relativ zur Basisadresse des Service-Hosts. Zum Beispiel, wenn Sie diese Endpunkte hatten:
%Vor% und eine Service-Host-URL von http://localhost:7777
, dann würden Sie Ihren Service auf http://localhost:7777
und die Metadaten auf http://localhost:7777/mex
veröffentlichen.
Im Allgemeinen hängt Ihre Interaktion also von mehreren Faktoren ab - von Ihrer Umgebungsumgebung, Ihrem Code und Ihren Web- oder App-Einstellungen.
Nach MSDN ( Ссылка ): Es gibt zwei Möglichkeiten, den Endpunkt anzugeben Adressen für einen Dienst in WCF. Sie können eine absolute Adresse für jeden Endpunkt angeben, der dem Service zugeordnet ist, oder Sie können eine Basisadresse für den ServiceHost eines Service angeben und dann eine Adresse für jeden Endpunkt angeben, der diesem Service zugeordnet ist, der relativ zu dieser Basisadresse definiert ist. Sie können jedes dieser Verfahren verwenden, um die Endpunktadressen für einen Dienst in Konfiguration oder Code anzugeben. Wenn Sie keine relative Adresse angeben, verwendet der Dienst die Basisadresse.
Auch Sie müssen auf Ihre Hosting-Umgebung achten. Zum Beispiel generiert IIS selbst Ihre Basisadresse für den Endpunkt (selbst wenn es in der Konfiguration angegeben ist), während es in Selbst-Hosts von der Konfiguration gelesen wird.
Der obige Link beschreibt die Eigenschaften der Angabe Ihrer Adresse in Code oder Konfiguration und ihre Abhängigkeit von Ihrer Host-Umgebung