Интерфейс IdentityServer4 Quickstart работает только с SDK, но не работает во время выполнения - PullRequest
0 голосов
/ 08 января 2019

Я настроил сервер IdentityServer4, который запускается, если я делаю dotnet run в главном каталоге проекта, но не работает правильно, если я его опубликую и затем пытаюсь запустить dll с помощью dotnet:

dotnet publish
cd bin/Debug/netcoreapp2.2/publish
dotnet MyIdentityServer.dll

Я использую ASP.Net Core 2.2. Я пробовал как в своей обычной среде разработки, а также с использованием SDK и док-контейнеров времени выполнения. Он работает с использованием SDK как в моей обычной среде, так и в контейнере SDK. Он не работает при использовании среды выполнения в моей обычной среде разработки или внутри контейнера среды выполнения.

Когда я запускаю dotnet, я вижу веб-интерфейс для IdentityServer, но когда я запускаю опубликованную DLL-библиотеку, при запуске не появляются такие же сообщения запуска IdentityServer, и после того, как он говорит, что работает, я не могу подключиться к сервер на порту, который он говорит, должен работать.

Вот как выглядят сообщения запуска, когда оно работает после выполнения dotnet run:

MacBook-Pro:MyIdentityServer XXXXXXXXXX$ dotnet run
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/Users/XXXXXXXXXX/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: IdentityServer4.Startup[0]
      Starting IdentityServer4 version 2.3.2.0
info: IdentityServer4.Startup[0]
      You are using the in-memory version of the persisted grant store. This will store consent decisions, authorization codes, refresh and reference tokens in memory only. If you are using any of those features in production, you want to switch to a different store implementation.
info: IdentityServer4.Startup[0]
      Using the default authentication scheme idsrv for IdentityServer
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for authentication
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for sign-in
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for sign-out
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for challenge
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for forbid
Hosting environment: Development
Content root path: /Users/XXXXXXXXXX/Projects/FirstIdentityServer4/src/MyIdentityServer
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

Вот как выглядят сообщения запуска, когда он не работает после запуска опубликованной DLL напрямую с dotnet MyIdentityServer.dll:

MacBook-Pro:publish XXXXXXXXXXXX$ dotnet MyIdentityServer.dll
Hosting environment: Production
Content root path: /Users/XXXXXXXXXXX/Projects/FirstIdentityServer4/src/MyIdentityServer/bin/Debug/netcoreapp2.2/publish
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

Вот мой каталог проектов:

MacBook-Pro:MyIdentityServer XXXXXXXXX$ ls
Config.cs           appsettings.Development.json
Dockerfile          appsettings.json
MyIdentityServer.csproj     bin
Program.cs          obj
Properties          something.txt
Quickstart          tempkey.rsa
Startup.cs          wwwroot
Views

Вот мой каталог публикации после выполнения dotnet publish:

MacBook-Pro:publish XXXXXXXXXX$ ls
IdentityModel.dll           MyIdentityServer.pdb
IdentityServer4.Storage.dll     MyIdentityServer.runtimeconfig.json
IdentityServer4.dll         appsettings.Development.json
MyIdentityServer.Views.dll      appsettings.json
MyIdentityServer.Views.pdb      tempkey.rsa
MyIdentityServer.deps.json      web.config
MyIdentityServer.dll            wwwroot

Я публикую это неправильно или запускаю неправильно?

1 Ответ

0 голосов
/ 10 января 2019

база на

MacBook-Pro:MyIdentityServer XXXXXXXXXX$ dotnet run
dbug: IdentityServer4.Startup[0]
      Using idsrv as default ASP.NET Core scheme for forbid
Hosting environment: Development

и это

MacBook-Pro:publish XXXXXXXXXXXX$ dotnet MyIdentityServer.dll
Hosting environment: Production

бревна

dbug: IdentityServer4.Startup[0]

обычно от

services.AddIdentityServer();

так что я забавляюсь, что вы вызываете AddIdentityServer внутри IsDevelopment

if (Environment.IsDevelopment())
{
    services.AddIdentityServer();
}

вот почему Хостинг-среда: Производство не получает журналы IdentityServer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...