OwinHost.exe не работает для проекта библиотеки классов
Вопрос
Я создал новый проект библиотеки классов со следующим стартовым классом:
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");
});
}
}
У меня установлены следующие пакеты:
<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>
Когда я пытаюсь запустить owinhost.exe
от /bin/debug
Я получаю следующую ошибку:
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.
Нужно ли мне делать что-нибудь еще, чтобы OwinHost.exe работал с проектом библиотеки классов (у меня была такая же проблема с консольным приложением).
Решение
Если вы запускаете OwinHost.exe без параметров, имя метода должно быть Configuration
, нет Configure
.
Кроме того, выполните owinhost.exe
по корневому пути (также известному как {projectDir}) и выводить сборки в /bin, а не в /bin/debug.Конечно, их можно настроить с помощью переключателей на OwinHost.exe
но это то, что нужно, если вы хотите запустить его без каких-либо переключателей.
Более подробное объяснение доступно здесь: Обнаружение класса запуска OWIN и здесь: Старый добрый опыт F5 с OwinHost.exe в Visual Studio 2013