Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Host grpc service in iis or as an app service? #9020

Closed
moodya opened this issue Apr 3, 2019 · 302 comments
Closed

Host grpc service in iis or as an app service? #9020

moodya opened this issue Apr 3, 2019 · 302 comments
Labels
area-grpc Includes: GRPC wire-up, templates
Milestone

Comments

@moodya
Copy link

moodya commented Apr 3, 2019

Aug 2022 Update

  • gRPC is supported in IIS and Http.Sys locally on Windows 11 and Windows Server 2022
  • gRPC is supported on App Service for Linux
  • gRPC is supported on App Service for Containers
  • gRPC is NOT supported on App Service for Windows

You can use this issue to track app service progress and follow up about gRPC on app service for Windows.


Original issue:

Is it possible to do this? If so how?


2022/08/18 Update - @JamesNK

Available in most regions: https://azure.github.io/AppService/2022/08/16/A-Heavy-Lift.html 🥳


2022/05/23 Update - @JamesNK

Azure App Service supports gRPC (preview): https://azure.github.io/AppService/2022/05/23/gRPC-support-on-App-Service.html 🎉


2021/12/16 Update - @JamesNK

User voice issue

There is a Microsoft Azure user voice issue for adding gRPC support to App Service. Consider voting if this is an important feature for you.

Azure no longer uses user voice.

2020/10/28 Update - @JamesNK

User voice issue

There is a Microsoft Azure user voice issue for adding gRPC support to App Service. Consider voting if this is an important feature for you.

Azure no longer uses user voice.

gRPC-Web

gRPC-Web with .NET is now available. gRPC-Web is compatible with IIS and Azure App Service. Link to blog post with more info: https://devblogs.microsoft.com/aspnet/grpc-web-for-net-now-available/

IIS

IIS is supported with .NET 5 and an insiders build of Windows. More info: #9020 (comment)

@moodya moodya changed the title Host grpc service in iis? Host grpc service in iis or as an app service? Apr 3, 2019
@Eilon Eilon added the area-grpc Includes: GRPC wire-up, templates label Apr 3, 2019
@Eilon
Copy link
Member

Eilon commented Apr 3, 2019

Hi @moodya , have you checked out the docs at https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-3.0&tabs=visual-studio ?

If you're running into a problem, please let us know and we can investigate.

@Eilon Eilon added the question label Apr 3, 2019
@moodya
Copy link
Author

moodya commented Apr 3, 2019 via email

@moodya
Copy link
Author

moodya commented Apr 3, 2019 via email

@Eilon
Copy link
Member

Eilon commented Apr 3, 2019

@shirhatti - any idea on this?

@shirhatti
Copy link
Contributor

Can't host gRPC in IIS/Azure App Service.
The HTTP/2 implementation of Http.Sys does not support HTTP response trailing headers which gRPC relies on.

@JamesNK JamesNK added this to the Discussions milestone Apr 3, 2019
@moodya
Copy link
Author

moodya commented Apr 4, 2019 via email

@shirhatti
Copy link
Contributor

The recommended approach is to host your gRPC service on AKS.

As far as App Service timelines go, I'd defer to @stefsch

@moodya
Copy link
Author

moodya commented Apr 8, 2019 via email

@alustrement
Copy link

I'm currently expecting issues to do this. I got a gRPC service running well using aspnetcore 3 preview 3 and Kestrel. But, an error about trailers appears using IIS when the service send the response (the request is well received) :
gPRC error => 2 UNKNOWN: No status received)
Dotnet error => "Trailers are not supported for this response" in Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer(HttpResponse response, String trailerName, StringValues trailerValues) at Grpc.AspNetCore.Server.Internal.HttpResponseExtensions.ConsolidateTrailers...

@moodya
Copy link
Author

moodya commented Apr 25, 2019 via email

@alustrement
Copy link

Following this exchange https://forums.iis.net/p/1241598/2147837.aspx?p=True&t=636917571046786374, it seems that is not the responsibilty of the web server to handle gRPC. gPRC use HTTP/2, IIS supports HTTP/2, so it must works. If it's not, it's a bug from IIS or, more possible, from dotnetcore.

@moodya
Copy link
Author

moodya commented Apr 25, 2019 via email

@alustrement
Copy link

Thanks, I missed it and it makes sense with my issue.
@shirhatti the support is planned on the roadmap ?

@shirhatti
Copy link
Contributor

We (IIS) are currently evaluating whether to support HTTP response trailers. No roadmaps/commitments I can speak to yet.

@jbrantly
Copy link

@shirhatti Given gRPC seems to be a major feature of .NET Core 3 (https://github.com/grpc/grpc-dotnet), it would be a real shame if it's not hostable in IIS/App Service given so many .NET web applications are hosted on those. I hope the availability of that feature in .NET Core helps drive your roadmap.

@Misiu
Copy link

Misiu commented Apr 26, 2019

I fully agree with @jbrantly. gRPC is advertised as one of the main features of .NET Core 3.
It should be hostable in IIS/Azure App Services.
@shirhatti please consider adding this to the roadmap

@moodya
Copy link
Author

moodya commented Apr 26, 2019 via email

@aloisdeniel
Copy link

I couldn't agree more.

@davidfowl
Copy link
Member

We're looking into it. It requires both Windows kernel changes and IIS changes.

@Misiu
Copy link

Misiu commented May 22, 2019

@davidfowl will this be possible when .NET Core 3 is released?
Ability to host GRPC in App Services is a blocker for me.

@vasquezjames
Copy link

Well is May 29 of 2019, and yet there is not signal that this will be possible. I'm looking for host a GRPC service in IIS and add a certificate to use HTTPS :(

@davidfowl
Copy link
Member

No it's not possible on IIS, we're working on getting changes but it will be a slow process (as it requires a windows update).

@anisite
Copy link

anisite commented Jun 5, 2019

I roughly lost about 3 days... thanks iis

@ahmagdy
Copy link

ahmagdy commented Jul 25, 2019

Hi @davidfowl
Any update?

@Misiu
Copy link

Misiu commented Aug 14, 2019

@davidfowl any chance this might get added before .NET Core 3.0 gets released? Or should we wait for 3.1 or 5.0?

@davidfowl
Copy link
Member

No as it requires windows changes. It’s not going to be part of 3.0 and it will require the latest version of Windows (whatever that is at the time) to get these features. There’s no ETA

@ikcore
Copy link

ikcore commented Apr 26, 2022 via email

@Tratcher
Copy link
Member

Tratcher commented Apr 26, 2022

we were told it was a windows kernel issue.

Yes getting the Windows kernel features was necessary for anyone wanting to run gRPC locally in IIS or Http.Sys. Those features have now shipped in Win11 and Server 2022.

The Azure experience has many other parts that need to be updated/replaced to enable an end-to-end cloud experience.

@czmirek
Copy link

czmirek commented May 5, 2022

Status:

  • We know this is important to you and we're working to make it happen.
  • .NET has the necessary components to enable this.
  • gRPC is now supported in IIS and Http.Sys locally on Win11 and Server 2022.
  • Several layers of Azure services need to be updated/replaced to enable this end-to-end. That work is progressing.
  • That progress won't be visible until an end-to-end experience is available.
  • We can't give an ETA.

I know you said you can't give an ETA but at least a time frame? Is this going to take few weeks, months or years?

@JohnGalt1717
Copy link

@czmirek You missed a 0.

@takekazuomi
Copy link

Currently, I don't think there is any reason for us to use Windows on Azure. The problem is that with App Service, we can't use grpc even if we use Linux. This means that it's time for us to forget about Windows. It's best to use it on Linux with AKS or Azure Container Apps. I recommend it. That is my conclusion after waiting for 3 years.

@mrivero2020
Copy link

We moved on. Our initial goal was to run grpc on App Services, but thankfully we moved on and containerized the application and deployed to Container Instances, where it worked just fine. This past month we moved the app to Container Apps, where grpc also works well.

@ghost
Copy link

ghost commented May 9, 2022

It is possible to host gRPC in IIS on Win Server 2019? Or plan to make it happen ?

@davidfowl
Copy link
Member

No there's no plans to backport this to 2019 AFAIK.

@acrigney
Copy link

acrigney commented May 9, 2022 via email

@mrivero2020
Copy link

With Container Instances we were running 8 of them in development, with minimal resources (0.25 CPU and 0.2 GiB) and the cost was around $70 a month, combined. Now that we have changed to Container Apps the cost is going down significantly as the container apps can scale down to 0 when not in used, and we are not charged anything during that time. We still have not deployed the solution to production so I cannot give you a number yet. In production we will use containers with more resources AND where we will always have at least one container running. We won't scale down to zero in prod since it is noticeable the time it takes to wake up the containers once you make that first connection.

@takekazuomi
Copy link

Congratulations, App Service now supports gRPC!
https://azure.github.io/AppService/2022/05/23/gRPC-support-on-App-Service.html
🎊🎉✨

@liamfoneill
Copy link

Congratulations, App Service now supports gRPC! https://azure.github.io/AppService/2022/05/23/gRPC-support-on-App-Service.html 🎊🎉✨

Well done team! Timely too - I have customers who are looking to migrate some apps from WCF to be rewritten in gRPC on Azure. Great stuff.

@ikcore
Copy link

ikcore commented May 23, 2022 via email

@czmirek
Copy link

czmirek commented May 23, 2022

It's available only in the EUAP regions....e.g. not yet accessible in normal regions.

@davidfowl
Copy link
Member

SoonCatGIF

@RodrigoRVieira
Copy link

Hello, @davidfowl!

Is it available already on Brazil South region? I've followed the given instructions but there is no connectivity through the public IP...

Thank you!

@Tratcher
Copy link
Member

Update: This is now available in most regions.
https://azure.github.io/AppService/2022/08/16/A-Heavy-Lift.html
https://github.com/Azure/app-service-linux-docs/blob/master/HowTo/gRPC/use_gRPC_with_dotnet.md

@mrcoymeeks
Copy link

@JamesNK
Copy link
Member

JamesNK commented Aug 17, 2022

Closing this issue as complete.

Thanks for everyone's interest and passion for gRPC on IIS and Azure App Service. It took a while, but the final solution created many improvements in Azure App Service.

https://azure.github.io/AppService/2022/08/16/A-Heavy-Lift.html

@JamesNK JamesNK closed this as completed Aug 17, 2022
@yizhoumo
Copy link

Do we have the support for gRPC in Azure App Service on Windows? Or is it just a Linux thing?

@davidfowl
Copy link
Member

davidfowl commented Aug 18, 2022

It's only available on Linux, not Windows.

@JoeSchulte
Copy link

JoeSchulte commented Aug 18, 2022 via email

@davidfowl
Copy link
Member

davidfowl commented Aug 18, 2022

A couple of reasons I think this should be closed:

  • The capability exists.
  • This isn't the place for tracking app service issues. We left it open for a long time because there was lots of engagement here but this isn't where those feature requests or issues are tracked.
  • A majority of customers wanting gRPC will be fine with Linux, at least to start with.

I'd suggest opening a new Feedback item for the app service team asking for support for Windows explicitly. Or you can use the existing one and pile onto it.

@YZahringer
Copy link

@habibcs
Copy link

habibcs commented Aug 18, 2022 via email

@davidfowl
Copy link
Member

This thread is super long and has lots of useful information that is hard to find. I updated the original description with the latest status of things. Hope that helps!

Thanks all!

@peter-bertok
Copy link

@davidfowl -- it's disappointing to see Microsoft's support for Windows fall further and further behind their support for Linux.

@johnayoub
Copy link

@davidfowl @Eilon will this work with a windows server 2022 container?

@dotnet dotnet locked as resolved and limited conversation to collaborators Oct 9, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-grpc Includes: GRPC wire-up, templates
Projects
None yet
Development

No branches or pull requests