OwinHost.exe funktioniert nicht für das Klassenbibliotheksprojekt
Frage
Ich habe ein neues Klassenbibliotheksprojekt mit der folgenden Startklasse erstellt:
public class Startup
{
public void Configure(IAppBuilder app)
{
app.Run(ctx =>
{
ctx.Response.StatusCode = 200;
ctx.Response.ContentType = "text/plain";
return ctx.Response.WriteAsync("Hello from Owin");
});
}
}
Ich habe folgende Pakete installiert:
<packages>
<package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.Owin.Host.HttpListener" version="2.1.0" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="OwinHost" version="2.1.0" targetFramework="net45" />
</packages>
Wenn ich versuche zu rennen owinhost.exe
aus /bin/debug
Ich erhalte die folgende Fehlermeldung:
Error: System.EntryPointNotFoundException
The following errors occurred while attempting to load the app.
- No assembly found containing an OwinStartupAttribute.
- No assembly found containing a Startup or [AssemblyName].Startup class.
Muss ich noch etwas tun, damit OwinHost.exe mit einem Klassenbibliotheksprojekt funktioniert (ich hatte das gleiche Problem mit einer Konsolenanwendung)?
Lösung
Wenn Sie OwinHost.exe ohne Parameter ausführen, muss der Methodenname angegeben werden Configuration
, nicht Configure
.
Auch ausführen owinhost.exe
unter dem Root-Pfad (auch bekannt als {projectDir}) und geben Sie die Builds nach /bin aus, nicht nach /bin/debug.Diese sind natürlich über Schalter konfigurierbar OwinHost.exe
Aber das ist es, was es braucht, wenn Sie es ohne Schalter betreiben möchten.
Eine ausführlichere Erklärung finden Sie hier: OWIN-Startklassenerkennung und hier: Gute alte F5-Erfahrung mit OwinHost.exe in Visual Studio 2013