Hallo zusammen,
ich stehe mal wieder auf dem Schlauch.
Ich möchte einen Webservice einrichten. Das geht auch, aber nur in einer Konsolenanwendung.
Es wir ein Port (Local Port) 20000 mit dem State "LISTENING" eingerichtet.
Der Port bleibt erhalten solange das Konsolenfenster geöffnet bleibt. Das leuchtet mir auch ein.
Jetzt kommt die Herausforderung.
Wie mach ich das in einer Windows - Anwendung oder Klassenbibliothek?
Der Port "20000" wird unmittelbar nach Aufruf der nachfolgenden Funktion eingerichtet
und unmittelbar nach Verlassen dieser Funktion wieder aufgelöst.
Ich vermute, dass ich anstatt der Konsole einen Thread brauche.
Was soll ich als Thread deklarieren?
Die "WebApp" Klasse
oder
die "StartWebApp" Methode
Und wie komme ich später an die Parameter (Variablen, Properites, usw.) der "Startup" Klasse ran?
Hier die "Startup" Klasse
Vielen Dank im Voraus.
Grüße von CopWorker
ich stehe mal wieder auf dem Schlauch.
Ich möchte einen Webservice einrichten. Das geht auch, aber nur in einer Konsolenanwendung.
Es wir ein Port (Local Port) 20000 mit dem State "LISTENING" eingerichtet.
Der Port bleibt erhalten solange das Konsolenfenster geöffnet bleibt. Das leuchtet mir auch ein.
C#:
using Microsoft.Owin.Hosting;
C#:
try
{
using (WebApp.Start<Startup>("http://101.0.0.1:20000"))
{
Console.WriteLine($"API Base URL: {startUrl}");
Console.WriteLine($"API Documentation URL: {startUrl}/swagger");
Console.WriteLine("Close API by pressing any key.");
Console.ReadKey();
}
}
catch (Exception ex)
{
Console.WriteLine(Convert.ToString(ex));
Console.ReadKey();
}
Jetzt kommt die Herausforderung.
Wie mach ich das in einer Windows - Anwendung oder Klassenbibliothek?
Der Port "20000" wird unmittelbar nach Aufruf der nachfolgenden Funktion eingerichtet
und unmittelbar nach Verlassen dieser Funktion wieder aufgelöst.
Ich vermute, dass ich anstatt der Konsole einen Thread brauche.
Was soll ich als Thread deklarieren?
Die "WebApp" Klasse
C#:
private static Thread WebApp;
die "StartWebApp" Methode
C#:
private static Thread StartWebApp;
Und wie komme ich später an die Parameter (Variablen, Properites, usw.) der "Startup" Klasse ran?
C#:
public int StartWebApp(ref string strAMsg)
{
int iRet = 0;
try
{
using (WebApp.Start<Startup>("http://101.0.0.1:20000"))
{
//TODO: Hier entprechendes Flag setzen um die Ereignisse im Ausgabefeld ausgegeben werden
}
}
catch (Exception exp)
{
strAMsg = exp.Message + "$;$" + (!string.IsNullOrEmpty(exp.InnerException.Message) ? exp.InnerException.Message : "");
iRet = -1;
}
return iRet;
}
Hier die "Startup" Klasse
C#:
public class Startup
{
/// <summary>
/// Standardkonstruktor der Klasse
/// </summary>
public Startup()
{
}
public void Configuration(IAppBuilder appBuilder)
{
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
appBuilder.UseCors(CorsOptions.AllowAll);
config.EnableSwagger(c => { c.SingleApiVersion("v1", "Demo"); }).EnableSwaggerUi();
appBuilder.UseWebApi(config);
config.EnsureInitialized();
}
}
Vielen Dank im Voraus.
Grüße von CopWorker