-
Notifications
You must be signed in to change notification settings - Fork 169
Unable to use HttpSys with ASP.NET Core 2.0 and Windows Server Nano #398
Comments
@shirhatti is httpsys supported in Nano Server for RS3? cc @Tratcher |
Anything? |
I've used my internal email powers to ping the Nano Server team about this. Hopefully they will be able to provide an answer. |
I'm having the same issue, can't get an application to run with the combination of Nano, ASP.NET core 2.0 and HttpSys. Bare bones 2.0 web app, with almost identical setup in Program.cs and Startup.cs mentioned above.
Using the latest versions of everything. Removing support for HttpSys from nano server seems like a big deal to me. Was this announced anywhere? Layering the auth stuff on top with another image or middleware isn't trivial. |
When I forwarded this to the Nano Server team, they told me httpapi should be present, however, it is apparently not. They are still looking into it. You may want to also open this issue through Windows Feedback and other Windows support channels if you have them. At the ASP.NET Core level, there doesn’t appear to be anything we can do about this Windows bug.
|
@HeathJared @tabinnorway @acorkery We heard back from the NanoServer team. The Http.Sys stack is no longer supported in NanoServer from RS3 onwards. It was one of the components that got the cut to allow us to the shrink the size of NanoServer. As such, our recommendation now would be to use Kestrel on Nano or move to ServerCore if you require HttpSysServer. Unfortunately, there's nothing we can do about this. If you care strongly about this, I would recommend creating an issue on the Windows Server User Voice to convince them to change their minds. |
Sorry, to necro this old closed thread, but I was hoping for a bit of confirmation. Regarding: "As such, our recommendation now would be to use Kestrel on Nano or move to ServerCore if you require HttpSysServer." We're already using Kestrel. The original intention for using HttpSys was to support Windows Authentication as discussed here. It was my understanding that IIS used HttpSys under the hood, but this may be incorrect as NanoServer has support for IIS and Windows Authentication (and NanoServer no longer uses HttpSys?). So, based on this, for projects using ASP.NET Core 2+, Kestrel, and Windows Authentication, it appears that the current recommendations are:
Is this correct? Thanks. |
Not quite.
This will only work with Windows Server 2016. NanoServer has dropped support for IIS in future versions (Server 1709, Server 1803)
Yes. This would be the recommended approach. |
Okay thanks, that clears it up. |
I'm sorry to necro this, too! But... Confused... We want to make a new project with Windows Container & Windows Authentication. Can I change the default ASP.NET Core 2.1 dockerfile to simply use microsoft/windowsservercore for the runtime? This is what I tried but doesn't work - I'm guessing microsoft/windowsservercore doesn't have the necessary Core 2.1 runtime? Or can I not use microsoft/dotnet:2.1-sdk-nanoserver for the base build image? Hmm
|
@amivit I recommend opening a new issue on https://github.com/dotnet/dotnet-docker, or commenting on dotnet/dotnet-docker#332. We don't currently provide Windows Server Core images, but there shouldn't be any reason you cannot built it yourself. Also, this repo isn't used for 2.1 images - those moved into the microsoft/dotnet repo. |
Steps to reproduce the issue
docker-compose.yaml:
dockerfile:
Expected behavior
The service should listen on port 80 (default) internal to the container and be accessible through the host at port 5000 (specified in the compose file).
Actual behavior
Exception in Startup:
Additional information
The build of nano server does not appear to include "httpapi.dll".
Manually copying the "httpapi.dll" into the docker container resolved this exception, but now it throws:
Output of
dotnet --info
Output of
docker info
The text was updated successfully, but these errors were encountered: