Ich benutze OWIN, um statische Inhalte über http von innerhalb eines Windows-Dienstes zu dienen. (So betten Sie ein Webverwaltungstool für den Windows-Dienst ein).Ich kann nur eine Datei mit OWIN UseStaticFiles
erlebe ich ein seltsames Verhalten:
- Wenn ich den Dienst ausführen, kann ich nur Zugriff auf ein Datei, die im „web“ -Ordner ist, jeder aufeinander folgender Aufruf Ergebnisse im Browser zu sagen, dass Die Seite ist nicht verfügbar (ERR_CONNECTION_RESET).
- Das eingebettete WebApi bleibt zugänglich.
- Wenn ich den Dienst mit derselben Adresse und demselben Port neu starte, bleiben die Dateien unsichtbar.
- Wenn ich den Dienst auf einem anderen Port neu zu starten, ich eine Datei einmal ...
Durch die Art und Weise zugreifen können, diese Dateien in diesem „web“ Ordner festgelegt werden „Copy immer“ für die Eigenschaft "In Ausgabeverzeichnis kopieren".
Wer weiß, was schief läuft?
Siehe hier meine StartUp Konfigurationsklasse
public class WebStartUp
{
public void Configuration(IAppBuilder app)
{
string staticFilesDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "web");
app.UseStaticFiles(staticFilesDir);
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
}
}
hier Siehe meinen Windows-Dienst, der es beherbergt ...
public partial class MyService : ServiceBase
{
private IDisposable webApp;
private const string ServiceAddress = "http://localhost:2345";
public MyService()
{
}
protected override void OnStart(string[] args)
{
InternalStart();
}
internal void InternalStart()
{
webApp = WebApp.Start<WebStartUp>(url: ServiceAddress);
}
protected override void OnStop()
{
}
public static void Main()
{
#if DEBUG
var service = new MyService();
Console.WriteLine("starting");
service.InternalStart();
Console.ReadLine();
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] {
new RaceManagerService();
}
ServiceBase.Run(ServicesToRun);
#endif
}
}
Ich bin froh, dass jemand meine Geschichte sichert ... Sie passieren keine Alternativen zu kennen, um das gleiche Ziel zu erreichen? – Stivni
Vielleicht sollte ich diese Bibliotheken abzweigen, sie reparieren und stattdessen eine Pull-Anfrage senden ;-) – Stivni
@Stivni Ich bin relativ neu in Owin und kenne sicher keine Alternativen. Sieht das gut aus: [SendFile] (http://owin.org/extensions/owin-SendFile-Extension-v0.3.0.htm)? Sie könnten auch die Web-API verwenden, die in IIS gehostet wird, aber ich nehme an, dass das nicht in Frage kommt ... – meilke