Как запустить IdentityServer3 в качестве службы Windows
У меня есть некоторый опыт работы со службами Windows, и я просто промочаюсь с IdentityServer3. Мое текущее решение отлично работает в IISExpress, но я не могу заставить его работать в IIS. Поэтому я подумал, что может быть проще разместить его в службе Windows, но я не смог найти ни одного примера для запуска и запуска. Кто-нибудь использовал этот подход?
Сначала я должен создать экземпляр класса IS3 Startup в моем методе OnStart, а затем вызвать метод Configuration для создания моего сервера аутентификации, но этот метод принимает параметр IAppBuilder, и я не знаю, как его создать. Любые идеи были бы хорошы.
1 ответ
Я делаю что-то похожее на это...
public partial class ServiceHost : ServiceBase
{
private IDisposable _service;
public ServiceHost()
{
InitializeComponent();
}
public void Start(string[] args) { OnStart(args); }
protected override void OnStart(string[] args)
{
var options = new StartOptions("https://localhost:44331/");
_service = WebApp.Start(options, Configuration);
}
protected override void OnStop()
{
_service?.Dispose();
}
private static void Configuration(IAppBuilder app)
{
var factory = new IdentityServerServiceFactory()
.UseInMemoryUsers(Users.Get())
.UseInMemoryClients(Clients.Get())
.UseInMemoryScopes(Scopes.Get());
var idsrvOptions = new IdentityServerOptions
{
Factory = factory,
SigningCertificate = Cert.Load(),
AuthenticationOptions = new AuthenticationOptions
{
// This is where we configure External Identity Providers
IdentityProviders = ConfigureIdentityProviders
}
};
app.UseIdentityServer(idsrvOptions);
}
private static void ConfigureIdentityProviders(IAppBuilder app, string signInAsType)
{
}
}