2017-08-03 1 views
1

eine Nancy selbst gehosteten Konsolenanwendung zu erstellen, müssen die lokale Adresse einschließlich der Port als Parameter:Ist es möglich, dass ein NancyHost einen anderen Hostnamen als localhost verwendet?

using (var host = new NancyHost(new Uri("http://localhost:1234"))) 
{ 
    host.Start(); 
    Console.ReadLine(); 
} 

Während die PORT Customizing, ein gültiger Anwendungsfall ist es möglich, einen anderen Host als („http://localhost“) zu verwenden, . Wenn ja, welche und aus welchem ​​Grund?

Backgroud:

Ich bin eine benutzerdefinierte Einstellungsdatei für den Server zu schaffen, und ich frage mich, ob es genug ist, um eine Einstellung ‚Port‘ zu schaffen, oder ist es besser, eine ‚Host‘ Einstellung zur Verfügung zu stellen (oder ' URL '), die den HOST sowie den PORT enthält?

bearbeiten

Hardcoding Um zu vermeiden, kann der Host-Teil über die Anwendungseinstellungen (App.config) konfigurierbar sein, die auf die benutzerdefinierten Einstellungen Datei unterscheidet, die von der Server-Administrator verwendet wird. Ich möchte jedoch die benutzerdefinierte Einstellungsdatei so einfach wie möglich halten. Dazu die Frage: Gibt es irgendeinen denkbaren Grund, dass der Teil 'http://localhost' modifiziert werden sollte?

+0

Fragen Sie, ob es OK ist, localhost in Ihrem Code zu codieren? Wenn ja, ist die Antwort ein klares Nein, selbst wenn Sie glauben, dass sich das nie ändern wird. Es ist nur gängige Praxis. –

+0

@tomredfern: Bitte sehen Sie die aktualisierte Frage. – JanDotNet

+0

Fragen Sie unabhängig von der Umgebung, in der Sie den Dienst bereitstellen, immer localhost? –

Antwort

1

Der NancyHost-Konstruktor benötigt ein gültiges Uri-Objekt, und um zu erstellen, dass Sie nicht um einen HOST angeben können. Abhängig von Ihrer Anwendung können Sie den HOST entweder in Ihrem Programm, in irgendeiner Form der Kommunikation oder über eine Einstellungsdatei bearbeiten. Kodiere den HOST nicht als localhost, auch wenn du denkst, dass es so bleiben wird, ist es gut, Dinge veränderbar zu halten. Wenn Sie Ihre Einstellungsdatei wollen so einfach wie möglich sein, spaltete es in zwei Dateien:

GRUNDLEGENDE

advancedSettings

wo advancedSettings nur Dinge enthält selten Sie, wenn überhaupt, zu ändern und GRUNDLEGENDE die Dinge enthalten Sie erwarten häufiger Änderungen.

Es kann einen Fall geben, in dem Sie zu einem Zeitpunkt eine Verbindung zu einem anderen Host herstellen möchten, weil NancyHost entweder in die Cloud oder ein anderes System im selben Netzwerk verschoben wurde (Letzteres ist wahrscheinlicher). Für den Fall, dass dies passiert, sollten Sie es modifizierbar machen.

+0

Danke für die Antwort. Ich denke, ich werde diesen Weg mit den 2 Einstellungsdateien gehen (wobei die erweiterte Datei die Standarddatei mit den Anwendungseinstellungen ist: App.config). – JanDotNet

+0

Allerdings habe ich den Punkt des letzten Teils nicht verstanden _Es kann sein, dass Sie irgendwann eine Verbindung zu einem anderen Host herstellen möchten ..._. 'NancyHost' ist der Server und es wird immer auf localhost (dem Computer, auf dem es läuft) gehört. Also, wo ist der Anwendungsfall, um diesen Teil zu ändern? Das ist eigentlich der Punkt, an dem ich interessiert bin;) – JanDotNet

Verwandte Themen