Aspnetcore: iis에서 또는 앱 서비스로 grpc 서비스를 호스팅하시겠습니까?

에 만든 2019년 04월 03일  ·  153코멘트  ·  출처: dotnet/aspnetcore

이것이 가능합니까? 그렇다면 어떻게?


2020/10/28 업데이트 - @JamesNK

사용자 음성 문제

App Service에 gRPC 지원을 추가하기 위한 Microsoft Azure 사용자 음성 문제가 있습니다. 이것이 귀하에게 중요한 기능이라면 투표를 고려하십시오.

gRPC-웹

이제 .NET이 포함된 gRPC-Web을 사용할 수 있습니다. gRPC-Web은 IIS 및 Azure App Service와 호환됩니다. 자세한 정보가 포함된 블로그 게시물 링크: https://devblogs.microsoft.com/aspnet/grpc-web-for-net-now-available/

IIS

IIS는 .NET 5 및 Windows의 내부자 빌드에서 지원됩니다. 추가 정보: https://github.com/dotnet/aspnetcore/issues/9020#issuecomment -713738181

area-grpc

가장 유용한 댓글

@shirhatti gRPC 가 .NET Core 3(https://github.com/grpc/grpc-dotnet)의 주요 기능인 것을 감안할 때 IIS/App Service에서 호스팅할 수 없다면 정말 부끄러운 일이 될 것입니다. NET 웹 응용 프로그램은 여기에 호스팅됩니다. .NET Core에서 해당 기능을 사용할 수 있으면 로드맵을 추진하는 데 도움이 됩니다.

모든 153 댓글

@moodya님 , 안녕하세요, https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-3.0&tabs=visual-studio 에서 문서를 확인하셨습니까?

문제가 발생하는 경우 알려주시면 조사해 드리겠습니다.

예, 이미 일반 호스팅 서비스로 실행되는 서비스를 구축했습니다. 새로운 asp net core 3 템플릿으로 이식하고 자체 호스팅 kestrel에서 작동하도록 했지만 현재 iis 뒤에서 호스팅하는 방법을 찾고 있으며 Azure에서 앱 서비스로 배포할 수 있기를 바랍니다. 전자(iis)가 작동하도록 할 수 없습니다.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Eilon Lipton [email protected]
보낸 날짜: 2019년 4월 3일 수요일 오후 6:06:17
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

안녕하세요 @moodya https://github.com/moodya , https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore- 에서 문서를 확인하셨습니까?

문제가 발생하는 경우 알려주시면 조사해 드리겠습니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479575937 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AlUvPONL4H1tZ- 스레드를 음소거하세요.

이 작업을 수행하는 방법에 대한 예를 찾을 수 없으므로 아직 지원되지 않을 수 있습니다.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Alain [email protected]
보낸 날짜: 2019년 4월 3일 수요일 오후 6:11:06
받는 사람: aspnet/AspNetCore; aspnet/AspNetCore
참조: 언급
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

예, 이미 일반 호스팅 서비스로 실행되는 서비스를 구축했습니다. 새로운 asp net core 3 템플릿으로 이식하고 자체 호스팅 kestrel에서 작동하도록 했지만 현재 iis 뒤에서 호스팅하는 방법을 찾고 있으며 Azure에서 앱 서비스로 배포할 수 있기를 바랍니다. 전자(iis)가 작동하도록 할 수 없습니다.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Eilon Lipton [email protected]
보낸 날짜: 2019년 4월 3일 수요일 오후 6:06:17
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

안녕하세요 @moodya https://github.com/moodya , https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore- 에서 문서를 확인하셨습니까?

문제가 발생하는 경우 알려주시면 조사해 드리겠습니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479575937 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AlUvPONL4H1tZ- 스레드를 음소거하세요.

@shirhatti - 이에 대한 아이디어가 있습니까?

IIS/Azure App Service에서 gRPC를 호스트할 수 없습니다.
Http.Sys의 HTTP/2 구현은 gRPC가 의존하는 HTTP 응답 후행 헤더를 지원하지 않습니다.

신속한 응답에 감사드립니다. 현재 프로덕션 시나리오에서 grpc 서비스를 호스팅하는 것이 좋습니다. 또한 iis/app 서비스에서 grpc 서비스를 호스트할 수 있는 시간 척도를 알고 있습니까?

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Sourabh Shirhatti [email protected]
보낸 날짜: 2019년 4월 3일 수요일 오후 7:13:23
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

IIS/Azure App Service에서 gRPC를 호스트할 수 없습니다.
Http.Sys의 HTTP/2 구현은 gRPC가 의존하는 HTTP 응답 후행 헤더를 지원하지 않습니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 회신하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479600486 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AlUvPNHH4- 스레드를 음소거합니다.

권장되는 접근 방식은 AKS에서 gRPC 서비스를 호스팅하는 것입니다.

App Service 타임라인이 진행되는 한 @stefsch 로 연기하겠습니다.

다시 연락해 주셔서 감사합니다. grpc 서비스 호스팅 측면에서 aks 대 서비스 패브릭 측면에서 aks가 더 나은 선택입니까? 그렇다면 왜?

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Sourabh Shirhatti [email protected]
보낸 날짜: 2019년 4월 8일 월요일 오전 7:31:45
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

권장되는 접근 방식은 AKS에서 gRPC 서비스를 호스팅하는 것입니다.

App Service 타임라인이 진행되는 한 @stefsch https://github.com/stefsch 로 연기하겠습니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 회신하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-480701227 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AlUvPLwQW8HCp- 스레드를 음소거합니다.

나는 현재 이것을 할 문제를 기대하고 있습니다. aspnetcore 3 미리 보기 3 및 Kestrel을 사용하여 잘 실행되는 gRPC 서비스를 얻었습니다. 그러나 서비스가 응답을 보낼 때 IIS를 사용하여 트레일러에 대한 오류가 나타납니다(요청이 잘 수신됨).
gPRC 오류 => 2 알 수 없음: 수신된 상태 없음)
Dotnet 오류 => Grpc.AspNetCore.Server.Internal.HttpResponseExtensions.ConsolidateTrailers의 Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer(HttpResponse 응답, String trailerName, StringValues ​​trailerValues) "이 응답에 대해 트레일러가 지원되지 않습니다."

위의 메시지에 따라 iis가 grpc 서비스 호스팅을 지원한다고 생각하지 마십시오.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: alustrement 알림 @github.com
보낸 날짜: 2019년 4월 25일 목요일 오전 10:57:42
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

나는 현재 이것을 할 문제를 기대하고 있습니다. aspnetcore 3 미리 보기 3 및 Kestrel을 사용하여 잘 실행되는 gRPC 서비스를 얻었습니다. 그러나 서비스가 응답을 보낼 때 IIS를 사용하여 트레일러에 대한 오류가 나타납니다(요청이 잘 수신됨).
gPRC 오류 => 2 알 수 없음: 수신된 상태 없음)
Dotnet 오류 => Grpc.AspNetCore.Server.Internal.HttpResponseExtensions.ConsolidateTrailers의 Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer(HttpResponse 응답, String trailerName, StringValues ​​trailerValues) "이 응답에 대해 트레일러가 지원되지 않습니다."


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 회신하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-486607635 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AJKS6PEAJ2UKKH2QIKNTCZDPSF6BNANCMS 스레드를 음소거합니다.

이 교환 https://forums.iis.net/p/1241598/2147837.aspx?p=True&t=636917571046786374 에 이어 gRPC를 처리하는 것은 웹 서버의 책임이 아닌 것 같습니다. gPRC는 HTTP/2를 사용하고 IIS는 HTTP/2를 지원하므로 작동해야 합니다. 그렇지 않은 경우 IIS의 버그이거나 더 가능성이 있는 dotnetcore의 버그입니다.

위의 메시지에 있는 Microsoft 직원에 따르면 iis는 grpc 서비스를 호스팅하는 데 필요한 후행 헤더를 지원하지 않습니다. 즉, 현재로서는 iis 또는 앱 서비스로 호스트할 수 없습니다.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: alustrement 알림 @github.com
보낸 날짜: 2019년 4월 25일 목요일 오전 11:39:08
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

이 교환 https://forums.iis.net/p/1241598/2147837.aspx?p=True&t=636917571046786374 에 이어 gRPC를 처리하는 것은 웹 서버의 책임이 아닌 것 같습니다. gPRC는 HTTP/2를 사용하고 IIS는 HTTP/2를 지원하므로 작동해야 합니다. 그렇지 않은 경우 IIS의 버그이거나 더 가능성이 있는 dotnetcore의 버그입니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-486620151 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AJKS6PBQO4427EYN67SI7A3PSMC4ZANHCMS 스레드를 음소거합니다.

고마워, 나는 그것을 놓쳤고 내 문제에 의미가 있습니다.
@shirhatti 지원이 로드맵에 계획되어 있습니까?

우리(IIS)는 현재 HTTP 응답 트레일러를 지원할지 여부를 평가하고 있습니다. 아직 이야기할 수 있는 로드맵/약속이 없습니다.

@shirhatti gRPC 가 .NET Core 3(https://github.com/grpc/grpc-dotnet)의 주요 기능인 것을 감안할 때 IIS/App Service에서 호스팅할 수 없다면 정말 부끄러운 일이 될 것입니다. NET 웹 응용 프로그램은 여기에 호스팅됩니다. .NET Core에서 해당 기능을 사용할 수 있으면 로드맵을 추진하는 데 도움이 됩니다.

@jbrantly에 전적으로 동의합니다. gRPC는 .NET Core 3의 주요 기능 중 하나로 보급됩니다.
IIS/Azure App Services에서 호스팅할 수 있어야 합니다.
@shirhatti 로드맵에 이것을 추가하는 것을 고려하십시오

저도 동의합니다.

Android용 Outlook 다운로드 https://aka.ms/ghei36


보낸 사람: Tomasz Jagusz [email protected]
보낸 날짜: 2019년 4월 26일 금요일 오전 9:42:58
받는 사람: aspnet/AspNetCore
참조: 무디야; 언급하다
제목: Re: [aspnet/AspNetCore] iis 또는 앱 서비스에서 grpc 서비스를 호스팅하시겠습니까? (#9020)

@jbrantly https://github.com/jbrantly 에 전적으로 동의합니다. gRPC는 .NET Core 3의 주요 기능 중 하나로 보급됩니다.
IIS/Azure App Services에서 호스팅할 수 있어야 합니다.
@shirhatti https://github.com/shirhatti 이것을 로드맵에 추가하는 것을 고려하십시오


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하거나 GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-486977989 에서 확인하거나 https://github.com/notifications/unsubscribe-auth/AJKS6PENWT46GCJ7GQDAGPTPSK6BFANCNFSM4 스레드를 음소거합니다.

나는 더 동의할 수 없었다.

조사 중입니다. Windows 커널 변경과 IIS 변경이 모두 필요합니다.

@davidfowl .NET Core 3가 출시되면 이것이 가능할까요?
App Services에서 GRPC를 호스팅하는 기능은 저에게 방해 요소입니다.

2019년 5월 29일 이지만 이것이 가능할 것이라는 신호는 없습니다. IIS 에서 호스트 GRPC 서비스를 찾고 HTTPS 를 사용하기 위한 인증서를 추가합니다.

아니요, IIS에서는 불가능합니다. 변경 사항을 적용하기 위해 노력하고 있지만 프로세스가 느릴 것입니다(Windows 업데이트가 필요하기 때문에).

대략 3일정도 헤맸습니다... 감사합니다 iis

안녕하세요 @davidfowl
모든 업데이트?

@davidfowl .NET Core 3.0이 출시되기 전에 추가될 가능성이 있습니까? 아니면 3.1이나 5.0을 기다려야 합니까?

Windows 변경이 필요하므로 아니요. 3.0에는 포함되지 않으며 이러한 기능을 사용하려면 최신 버전의 Windows(당시 무엇이든지 간에)가 필요합니다. 도착 예정 시간이 없습니다

흠, dotnet core 3 위에 gRPC 기반 상태 비저장 서비스와 신뢰할 수 있는 행위자를 사용할 서비스 패브릭 구현을 계획 중입니다. SF에서 호스팅하는 경우 핵심에서 kestrel을 사용하게 될까요? 프로토타입을 만들 시간입니다.

@oising 같은 보트 - 그러나 우리는 천천히 k8s + Linux 컨테이너로 나아가고 있으므로 이러한 종류의 도움이 어쨌든 우리를 그렇게 밀어붙입니다.

나는 지금 잠시 동안 gRPC를 가지고 놀았고 마침내 일부 클라이언트 프로젝트에서 그것을 채택하기 시작하고 배포 워크플로를 살펴보고 있었기 때문에 이것을 더했습니다. .net 코어를 사용하여 프로덕션 환경에 배포해야 하는 운영 오버헤드의 양에 약간 실망했습니다.

또한 IIS가 문제인지 파악하는 데 며칠이 걸렸습니다. 정말 수정을 찾고 있습니다. 해결 방법이 있습니까?

Windows 지원 및 IIS가 없는 @bingoo 당신은 운이 없습니다. Service Fabric을 사용할 수 있지만 경험이 없습니다. IIS나 Azure에서 간단한 방법으로 호스트할 수 있기를 바랍니다.
현재 프로젝트의 경우 이 문제로 인해 Grpc가 옵션이 아닙니다.

이것이 문서에 대한 대담한 경고라면 좋을 것입니다 ...

IIS 호스팅은 아직 지원되지 않습니다. App Services는 기본적으로 백엔드로 Windows Server 2016 + IIS를 사용하지만 이제는 Linux/컨테이너도 지원합니다. Azure App Service에 GRPC를 배포하려는 경우 지금 Linux 컨테이너를 사용하여 배포할 수 있습니다. 그러나 App Service 계획은 Windows 호스팅 계획과 공유할 수 없습니다. Linux Container가 지원하는 새로운 App Service 계획을 위해 추가 비용을 지출해야 합니다.

가장 좋은 방법은 AKS를 사용한 다음 Ambassador를 사용하는 것입니다. Ambassador는 Kubernetes 내부에서 컨테이너로 실행되는 Envoy 기반 API 게이트웨이입니다. 예를 들어 grpc와 grpc-web을 모두 프록시할 수 있습니다. 브라우저에서 grpc 서버로, grpc 클라이언트로, 아마도 ac#에서 grpc 서버로. 프론트엔드 js가 gRPC 호출을 수신하도록 하려면 브라우저가 http2 응답 후행 헤더를 제대로 지원하지 않기 때문에 grpc 웹과 프록시가 필요합니다. Grpc Web은 기본적으로 Envoy를 사용하므로 Ambassador가 가장 좋습니다.

Azure App Service에 GRPC를 배포하려는 경우 지금 Linux 컨테이너를 사용하여 수행할 수 있습니다.

@EdiWang 이것은 현재 Linux용 App Service에서 지원되지 않습니다. 현재 이 기능을 활성화하기 위해 App Service와 협력하고 있지만 공유할 ETA가 없습니다.

안녕하세요 좋은사람들
약간 혼란스러워서 하늘색에서 grpc 서비스를 사용할 수 없습니다.
그러나 Azure 자체는 Azure Functions Languge Worker Protobuf인 grpc를 사용하고 있습니다.
https://github.com/Azure/azure-functions-language-worker-protobuf
아니면 내가 여기서 뭔가를 놓치고 있습니까?
이해하려고 노력 중 : 혼란스러운 :

@GoranHalvarsson Azure에서 gRPC 서비스를 가질 수 있지만 아직 Azure App Services에서 실행할 수 없습니다.

@markrendle 답변 감사합니다. 그렇다면 Azure에서 gRpc 서비스를 어떻게 사용/설정할 수 있습니까?

이것이 문서에 대한 대담한 경고라면 좋을 것입니다 ...

https://github.com/aspnet/AspNetCore.Docs/issues/14684

@markrendle 답변 감사합니다. 그렇다면 Azure에서 gRpc 서비스를 어떻게 사용/설정할 수 있습니까?

IIS를 사용하지 않음으로써 Service Fabric 또는 AKS를 사용하게 됩니다. 둘 다 원시 Kestrel을 사용합니다. SF와 AKS는 특성이 다릅니다. "Service Fabric vs AKS"에 대해 Google에서 큰 커피를 마시십시오.

.NET Core 3.0을 사용하여 grpc 서비스 테스트 및 배포를 위한 단계별 가이드를 만들었습니다.
https://github.com/rupeshtech/k8s-grpc-dotntecore

방금 이 문제를 조사했기 때문에 아직 아무 것도 시도하지 않았습니다. 하지만 (컨테이너 https://azure.microsoft.com/en-us/services/app-service/containers/) Azure Web App을 사용해 본 사람이 있습니까?

저는 Azure App Services에서 도커 기반 마이크로 서비스를 실행하고 있으며 문제가 거의 없었으며 OOB App Service 제품의 다른 제한적인 특성을 해결할 수 있었습니다.

@ikemtz gRPC는 kestral을 사용할 때 작동합니다(즉: 컨테이너에서 실행할 때).

@rupeshtech 감사하지만 귀하의 기사는 문제와 관련이 없습니다.

이 문제는 IIS 또는 Azure App Service에서 gRPC(또는 후행 헤더를 사용하는 모든 앱)를 호스팅하기 위한 것입니다.

이것이 문서에 대한 대담한 경고라면 좋을 것입니다 ...

aspnet/AspNetCore.Docs#14684

이제 구현 되었습니다.

@ikemtz 컨테이너용 Azure Web App에서 실행되는 Linux 컨테이너에서 gRPC를 사용하기 위한 기본 테스트를 실행하려고 시도했지만 작동하지 않습니다. 보고된 오류는 찾을 수 없었지만 컨테이너는 HTTP 핑에도 응답하지 않았습니다.
부끄럽다. 저는 이 기능을 얻기 위해 AKS로 이동할 준비가 되어 있지 않으므로 당분간은 구식 HTTP 서비스를 계속 사용할 것입니다.

@searus 대신 가상 머신을 사용하는 경우(azure에서 실행)

@GoranHalvarsson 이 기술을 사용하기 위해 PaaS에서 IaaS로 이동할 준비가 되어 있지 않습니다. Azure App Service에서 이를 지원할 수 있을 때까지 기다리겠습니다.

@davidfowl 이에 대한 로드맵이 있습니까?

Kestral을 사용하여 컨테이너에 배포하는 것은 좋지만 말하기는 쉽습니다.
IIS에서 Lets Encrypt를 사용하거나 실제로 저를 방해하는 앱 서비스를 사용합니다.
let을 사용하여 사용자 지정 도메인을 실행하는 방법에 대한 간결한 가이드가 있는 경우
컨테이너의 kestrel에서 암호화한 다음 먼저 gRPC 헤드로 이동합니다.
그렇지 않으면 일부 사용자 정의를 만드는 오버 헤드를 정당화하기가 매우 어렵습니다.
새로운 스택을 수용하기 위한 배포.

2019년 10월 16일 수요일 오전 6:46 Russell Seamer [email protected]
썼다:

@GoranHalvarsson https://github.com/GoranHalvarsson 준비되지 않았습니다
이 기술을 활용하기 위해 PaaS에서 IaaS로 이동합니다. 난 그냥
Azure App Service에서 이를 지원할 수 있을 때까지 기다리세요.


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/aspnet/AspNetCore/issues/9020?email_source=notifications&email_token=AMNAZYUWLYLGC5ZGB4GAFITQO2TCFA5CNFSM4HDHMSDKY25PNVWWK3TUL52HS4DFVREXG43VMXHJKTTNMV
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/AMNAZYTKUYYBWKSW6AMQDHTQO2TCFANCNFSM4HDHMSDA
.

이를 통해 Azure Functions 및 App Service 위에 있는 다른 모든 것은 실제로 gRPC 및 HTTP/2를 사용할 수 없습니다. 비공개/공개 미리 보기의 경우에도 타임라인이 좋을 것입니다.

현재 http.sys의 변경 사항을 작업 중입니다. 그런 다음 IIS 및 ARR의 이러한 변경 사항에 대응해야 합니다. 그런 다음 IIS에서 이러한 변경 사항을 활용하려면 앱 서비스에서 실행되는 Windows 버전을 업데이트해야 합니다.

작업은 명시되어 있지만 고객이 작업을 수행하는 데 얼마나 걸릴지 예측하기는 정말 어렵습니다. 진행 상황에 따라 계속 알려드리겠습니다.

나는 이것이 내가 슬프게도 놀랍지 않은 일이라고 생각합니다(새로운 http 기능을 구현하려면 커널 업데이트가 필요합니다). 분명히 IIS는 Linux/macosx에 존재하지 않지만 다른 운영 체제의 다른 우리 서버에 grpc에 대한 지원을 추가하면 놀랄 것입니다... 커널 업데이트 방식으로 많이 필요합니다.

아마도 이것은 디커플링에 대한 적절한 논증/예입니다...

나는 이것이 내가 슬프게도 놀랍지 않은 일이라고 생각합니다(새로운 http 기능을 구현하려면 커널 업데이트가 필요합니다). 분명히 IIS는 Linux/macosx에 존재하지 않지만 다른 운영 체제의 다른 우리 서버에 grpc에 대한 지원을 추가하면 놀랄 것입니다... 커널 업데이트 방식으로 많이 필요합니다.

아마도 이것은 디커플링에 대한 적절한 논증/예입니다...

동의한다. 이것은 아마도 커널과 직접적으로 연결된 저수준 프로토콜을 실행하는 IIS와 관련이 있을 것입니다. 이상해 보이지만 적어도 우리는 이것이 작업 중이며 채택이 완전히 파란 하늘이 아니라는 확인을 받았습니다.

WebSocket 지원을 받기 위해 Windows 8로 업그레이드해야 했던 때를 기억하십니까? 나도 그래 😄

예, 우리는 기억합니다! 특종은 다음과 같습니다. gRPC는 .NET-Core에서 릴리스되었으며 Azure App Services를 사용하므로 최소한 최대한 빨리 테스트할 수 있는 몇 가지 옵션이 있어야 합니다. Azure App Services에서 릴리스된 .NET-Core 기능에 대한 동기화가 언제 발생하는지 알려줄 수 있는 사람이 있습니까? 또는 가능한 해결 방법. 감사 해요

저희에게 연락해 줘서 고마워요. 이 문제에 대한 활동이 없기 때문에 백로그를 깨끗하게 유지하기 위해 이 문제를 닫습니다. 아직 해결되지 않은 ASP.NET Core 프레임워크와 관련된 문제가 있다고 생각되면 새 문제를 제출하세요.

@anurse 이 문제를 계속 공개하려면 어떻게 해야 합니까?

그것은 토론에 넣어지고 질문에 태그가 지정되었습니다. 다시 열었습니다.

아직 ETA가 있습니까?

프로덕션 환경에서 gRPC가 작동하도록 하는 실행 가능한 대안이 있습니까?
몇 가지 항목을 살펴보았고 AKS에서 호스팅하는 것이 옵션인 것 같습니다. 문제를 해결하는 데 도움이 되지 않는 작업을 수행하지 않도록 하고 싶습니다.

우리는 현재 이 프로젝트를 위해 일종의 프로덕션 환경을 실행하려고 노력해 왔습니다.
gRPC를 통해 API와 통신하는 IdentityServer 프로젝트
gRPC를 통해 API와 통신하는 5개의 웹 포털
gRPC를 통해 Discord Bot(ASP.NET Core)과 통신하는 API입니다.

우리는 VPS에서 호스팅을 시도했지만 이러한 모든 응용 프로그램이 동일한 VPS에서 유지되기를 원하는 경우 kestrel을 사용하여 프로덕션 환경에서 실제로 호스팅할 수 있는지 모르겠습니다.

Kestrel(IIS, Http.Sys, 창).

(또는 이 모든 것을 최대한 빨리 호스팅할 수 있는 다른 방법)

미리 감사드립니다!

(편집하다)

Let's Encrypt( https://github.com/natemcmaster/LetsEncrypt )를 사용하여 SSL 인증서를 얻습니다.

(편집 2)
트위터에서 이에 대해 @davidfowl 에게도 연락을 시도했습니다.
https://twitter.com/DapperDino4/status/1204119195765682177
https://twitter.com/DapperDino4/status/1204119695344971778

아직 ETA가 있습니까?

이 작업을 하고 있는 @shirhatti@Tratcher 를 추가합니다.

이 시기는 현재로서는 단정하기 어렵다. IIS는 Windows 구성 요소이며 Windows 구성 요소이기도 한 http.sys에 의존합니다. IIS나 http.sys 모두 gRPC를 지원하기에 충분한 HTTP/2 기능이 없습니다. 우리는 변경 사항을 적용하기 위해 해당 팀과 매우 긴밀하게 협력해 왔으며 향후 릴리스를 위해 모두 순조롭게 진행되고 있지만 적절한 변경 사항이 포함된 Windows Server 릴리스가 출시될 때까지 사용할 수 없습니다.

@JamesNK gRPC-web과 같은 대안의 가용성에 대해 말씀해 주시겠습니까?

gRPC-Web이 무엇인지 모르는 사람들을 위한 컨텍스트: https://grpc.io/blog/state-of-grpc-web/. HTTP/1.1을 사용하기 때문에 Azure App Service 제한 사항이 적용되지 않습니다. 단점은 HTTP/2 이점(멀티플렉싱, 헤더 압축)이 없고 클라이언트 또는 양방향 스트리밍이 없다는 것입니다.

gRPC-Web envoy 리버스 프록시는 현재 사용할 수 있지만 설정이 쉽지 않습니다. 그리고 .NET gRPC-Web 클라이언트는 없습니다.

ASP.NET Core 팀은 공식적으로 gRPC-Web을 지원할 것인지 여부를 아직 결정하지 않았습니다. 저는 지금 gRPC-Web을 보고 있으며 .NET Core에서 어떻게 보일지 살펴보고 있습니다. 몇 주 후에 나는 더 많은 것을 말할 수 있고 아마도 1월에 사람들이 시험해 볼 실험적인 미리보기를 가질 수 있을 것입니다.

IIS는 이것을 지원하지 않기 때문에 netcore gRPC 서비스를 Nginx 뒤에서 호스팅할 수 있습니까?

@Dennis-Petrov 정확히 이것을 합니다. 나는 이 문서 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1 를 따랐고 gRPC는 훌륭하게 실행됩니다.

어리석은 질문을 해도 될까요? Linux App Service 계획의 Azure App Service에서 이것이 작동하지 않는 이유는 무엇입니까?

IIS도 파이프라인의 어딘가에 관련되어 있습니까?

@searus Linux/Windows에 관계없이 프론트엔드와 앱 서비스 사이에는 공통 레이어가 있습니다. 즉, 현재 App Service 프런트엔드는 HTTP/2 연결을 수신하고 내부 연결은 개별 앱 서비스 작업자에게 "이전" HTTP로 프록시 처리됩니다. gRPC를 완벽하게 지원하기 위해 작업 중이라고 확신하지만 내부 구성 요소를 업데이트, 테스트 및 릴리스해야 하므로 약간의 노력이 필요합니다.

@devlead님 감사합니다.
나는 (아마 순진하게도) Linux App Service Plan이 전체적으로 Linux라고 생각했습니다.
여기에 관련된 노력에 전적으로 감사드리며 시간을 내어 설명해주셔서 감사합니다.

gRPC를 완벽하게 지원하기 위해 작업 중이라고 확신합니다.

확실히 작업 중입니다. 우리는 이에 대해 적극적으로 노력하고 있지만 일정을 보장할 수 없습니다(여기에서 조정해야 하는 여러 독립 팀이 있음). @devlead 는 Azure App Service Linux 지원에 대해 정확합니다. 프런트 엔드 프록시가 IIS를 실행 중입니다. 클라이언트에서 HTTP/2 수신을 지원하지만 앱으로 트래픽을 프록시할 때 HTTP/1.1로 다운그레이드됩니다. 이것은 일반 앱에서는 괜찮았지만(이상적이지는 않지만) gRPC 에는 HTTP/2 기능이 필요하기 때문에 적합하지 않습니다.

예, 이미 일반 호스팅 서비스로 실행되는 서비스를 구축했습니다. 새로운 asp net core 3 템플릿으로 이식하고 자체 호스팅 kestrel에서 작동하도록 했지만 현재 iis 뒤에서 호스팅하는 방법을 찾고 있으며 Azure에서 앱 서비스로 배포할 수 있기를 바랍니다. 전자(iis)가 작동하도록 할 수 없습니다.

@moodya 어떻게 했는지 공유할 수 있나요??

예, 이미 일반 호스팅 서비스로 실행되는 서비스를 구축했습니다. 새로운 asp net core 3 템플릿으로 이식하고 자체 호스팅 kestrel에서 작동하도록 했지만 현재 iis 뒤에서 호스팅하는 방법을 찾고 있으며 Azure에서 앱 서비스로 배포할 수 있기를 바랍니다. 전자(iis)가 작동하도록 할 수 없습니다.

@moodya 어떻게 했는지 공유할 수 있나요??

gRPC 템플릿은 기본적으로 자체 호스팅 kestrel입니다. 이 스레드에 설명된 이유로 앱 서비스에서 작동하지 않습니다.

앱 서비스에서 호스팅할 수는 없지만 aks에서 grpc 서비스를 호스팅한다고 가정해 보겠습니다. 앱 서비스에서 grpc를 호출하는 데 문제가 있습니까? grpc 클라이언트가 최소한 앱 서비스에서 작동합니까?

앱 서비스에서 호스팅할 수는 없지만 aks에서 grpc 서비스를 호스팅한다고 가정해 보겠습니다. 앱 서비스에서 grpc를 호출하는 데 문제가 있습니까? grpc 클라이언트가 최소한 앱 서비스에서 작동합니까?

예, 클라이언트가 작동해야 합니다. 제한은 아웃바운드가 아닌 인바운드 요청에만 적용됩니다.

어리석은 질문일 수 있지만 IIS Express를 사용하여 디버그에서 gRPC 서비스를 실행하는 경우 작동하는 이유는 무엇입니까? 예를 들어, gRPC 서비스를 호출하는 웹 앱(Razor Pages, .net core 3.1)이 있습니다. IIS Express의 gRPC 서비스를 사용하여 내 워크스테이션에서 둘 다 디버그하면 웹 앱이 서비스와 제대로 통신할 수 있습니다. 위에서 설명한 @anurse 프록시 동작으로 인해 서비스가 IIS에서 호스팅될 때 gRPC에 HTTP/2가 필요하다는 예외가 발생합니다. IIS Express는 IIS와 다른 방식으로 Kestrel에 프록시를 사용합니까?

또한 이 자리가 아닐 수도 있지만 아래 페이지에 IIS/App Service 프록시 동작에 대한 간단한 설명이 제공되기를 겸손하게 요청하고 싶습니다. 나는 (아마도 어리석게도) IIS를 능가하려고 하루 종일을 보냈습니다. 왜냐하면 앱이 Kestrel https://docs.microsoft.com/en- 에서 out-of-process를 실행하는 경우 HTTP/2에서 프록시를 강제할 수 있다고 생각했기 때문입니다.

IIS 익스프레스는 IIS가 작동하지 않는 것과 동일한 이유로 작동하지 않아야 합니다.

@Tratcher 아 네 맞습니다. IIS Express가 아닌 자체 호스팅으로 gRPC 서비스를 실행하고 있었습니다. 감사 해요!

누구든지 AKS에서 이것을 작동시키는 방법에 대한 자습서가 있습니까? (azure devops 및 aks를 사용하여 azure에 배포할 때까지 .net core dev가 포함된 전체 스택을 갖도록 컨테이너를 다시 빌드할 필요 없이 로컬에서 aks의 코드로 디버깅하는 경우 보너스 포인트).

가장 중요한 것은 포드 자체(예: Azure 로드 밸런서 또는 기타)에서 ngix를 사용하지 않고도 AKS 포드에 대한 웹 트래픽을 프록시하기 위해 AKS에서 무엇을 사용하고 있는지입니다.

앱 서비스에서 호스팅할 수는 없지만 aks에서 grpc 서비스를 호스팅한다고 가정해 보겠습니다. 앱 서비스에서 grpc를 호출하는 데 문제가 있습니까? grpc 클라이언트가 최소한 앱 서비스에서 작동합니까?

예, 클라이언트가 작동해야 합니다. 제한은 아웃바운드가 아닌 인바운드 요청에만 적용됩니다.

불행히도 이것은 Azure Web Apps에서 호스팅될 때 grpc 서비스(이 경우 VM에서 실행되는 Python 코드)를 호출하는 .Net Core 3.1 기반 웹 앱의 경우가 아닌 것 같습니다. 시간이 초과되었습니다. localhost에서 정확히 동일한 코드를 실행할 때 호출이 진행됩니다(동일한 서비스 VM).

@lyulyok 진단을 수집하고 별도의 문제를 열 ​​수 있습니까? 여기에는 클라이언트에 알려진 문제가 없습니다.

누구든지 AKS에서 이것을 작동시키는 방법에 대한 자습서가 있습니까?

이에 대해 논의하려면 새 문제를 열거나 Stack Overflow 에 문의하세요. 특히 IIS 및 HTTP.sys에서 gRPC의 상태에 관심이 있는 많은 사람들이 있고 모든 주석은 해당하는 모든 사람에게 핑이 되므로 이 스레드를 주제로 유지하겠습니다. 주제를 벗어난 댓글은 숨기겠습니다. 추가 질문이 있으면 언제든지 새로운 문제를 게시 해 주세요.

예, 이미 일반 호스팅 서비스로 실행되는 서비스를 구축했습니다. 새로운 asp net core 3 템플릿으로 이식하고 자체 호스팅 kestrel에서 작동하도록 했지만 현재 iis 뒤에서 호스팅하는 방법을 찾고 있으며 Azure에서 앱 서비스로 배포할 수 있기를 바랍니다. 전자(iis)가 작동하도록 할 수 없습니다.

이제 .NET에서 gRPC-Web에 대한 실험적 지원을 사용할 수 있습니다. gRPC-Web은 HTTP/1.1 및 HTTP/2에서 작동하며 IIS 및 Azure App Service에서 실행됩니다.

Azure App Service에서 실행되는 HTTP/2 gRPC를 위해 계속 노력하고 있지만 gRPC-Web은 현재 사용할 수 있는 것입니다 . IIS 및 Azure App Service에서 HTTP/2 지원 작업이 완료되면 .NET 앱을 gRPC-Web에서 HTTP/2 gRPC로 전환하는 간단한 프로세스가 됩니다.

블로그 게시물: https://devblogs.microsoft.com/aspnet/grpc-web-experiment
문서: https://docs.microsoft.com/aspnet/core/grpc/browser

다른 사람도 시도하려는 경우를 대비하여 앱 서비스에서 grpc 클라이언트가 실행되고 aks에서 제대로 실행되는 서비스가 있습니다.

@andrew-vdb 구성을 게시할 수 있습니까?

안녕하세요 @JamesNK ,
귀하의 의견 https://github.com/dotnet/aspnetcore/issues/9020#issuecomment -579597202 및 gRpc-Web이 현재 _약정된 제품이 아닌 _실험적 프로젝트_인 것으로 보입니다.

  • IIS에 배포하려면 gRpc-Web이 필요합니까? 그렇지 않으면 전혀 불가능합니까?
  • gRpc-Web 없이 IIS에 배포할 수 있는 시기에 대한 ETA가 있습니까?
  • gRpc-Web이 Microsoft에서 공식적으로 지원되는 시점이 언제입니까?

IIS에 배포하려면 gRpc-Web이 필요합니까? 그렇지 않으면 전혀 불가능합니까?

현재 HTTP/2를 통한 gRPC는 IIS에서 작동하지 않습니다. gRPC-Web이 작동합니다.

gRpc-Web 없이 IIS에 배포할 수 있는 시기에 대한 ETA가 있습니까?

아니요. Windows에 변경 사항이 적용되고 일반에 공개되는 데는 시간이 걸립니다.

gRpc-Web이 Microsoft에서 공식적으로 지원되는 시점이 언제입니까?

지금은 아닙니다.

참고로
gRPC-Web DAL에 대한 REST API DAL을 변경한 애플리케이션(ASP.Net Core 3.2.0-Preview1)이 있습니다. Steve Sanderson 블로그 게시물의 지침을 따랐습니다. 내 솔루션은 CSB 또는 SSB로 실행할 수 있으며 두 구성 모두에서 gRPC-Web에 성공했습니다(최신 버전의 gRPC.* nuget 패키지로 진행해야 했습니다).

실수로 야간 빌드에서 추가 업데이트를 수행했으며 현재 내 gRPC 패키지는 모두 버전 2.28.0-dev202003020801입니다. 내 두 가지 작업 솔루션 배포가 각각 실패하기 때문에 잘못 말합니다.

SSB - 클라이언트에서 "처리되지 않은 예외 렌더링 구성 요소: 파일 또는 어셈블리 'System.Text.Json, 버전=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'을 로드할 수 없습니다. 시스템에서 지정된 파일을 찾을 수 없습니다."라는 오류를 보고합니다. "
System.Text.Json(4.7.1)의 명시적 nuget 패키지를 내 웹 서버 프로젝트에 추가하기만 하면 이 오류가 사라지고 모든 것이 작동합니다.
[편집] NuGet 피드에서 모든 gRPC.* 패키지에 대해 버전 2.27.0/2.27.0-Pre1로 돌아가면 이 문제가 해결됩니다.

CSB - 첫 번째 gRPC-Web 응답을 수신할 때 클라이언트의 동일한 지점에서 "WASM: Grpc.Core.RpcException: Status(StatusCode=Internal, Detail="Bad gRPC 응답. 응답 프로토콜이 HTTP로 다운그레이드됨) 오류가 발생합니다. /1.1.")". 이에 대한 해결 방법은 없지만 CSB가 릴리스될 때까지 SSB를 배송하므로 중요하지 않습니다.
[편집] NuGet 피드에서 모든 gRPC.* 패키지에 대해 버전 2.27.0/2.27.0-Pre1로 돌아가면 이 문제가 해결됩니다.

장황하게 말해서 죄송하지만 마지막으로 두 가지 질문이 있습니다.

  • gRPC/gRPC-Web에서 다른 json 직렬 변환기/역직렬 변환기를 사용할 수 있습니까?
  • gRPC/gRPC-Web 패키지가 ASP.Net Core 3.2-Preview 2와 '정렬'되나요? 아니면 야간 빌드에 액세스해야 합니까?

안녕하세요 @JamesNK ,
내 고객이 gRpcWeb으로 마이그레이션했지만 중요한 제한 사항을 발견했습니다(문서를 찾지 못함). 최대 메시지 크기는 3067자입니다.
기본 gRpc 서비스의 일반적인 클라이언트 서비스에서 gRpc-Web으로 변환된 경우 이 행은 실패합니다(문자열이 3068자이고 1이 제한을 초과하기 때문).

// gRPC-Web을 사용하도록 채널 구성
var 처리기 = 새로운 GrpcWebHandler(GrpcWebMode.GrpcWebText, 새로운 HttpClientHandler());
// 포트 번호(5001)는 gRPC 서버의 포트와 일치해야 합니다.
var 채널 사용 = GrpcChannel.ForAddress(" https://localhost :5001", 새로운 GrpcChannelOptions
{
HttpClient = 새로운 HttpClient(핸들러)
});
var 클라이언트 = 새로운 Greeter.GreeterClient(채널);
var 응답 = 대기 client.SayHelloAsync(new HelloRequest { Name = new string('A', 3068 ) });
Console.WriteLine("인사: " + 답장.Message);
Console.WriteLine("종료하려면 아무 키나 누르세요...");
콘솔.ReadKey();

클라이언트와 서버가 포함된 재현 솔루션을 첨부합니다.
GrpcWeb.zip

normale gRpc가 있는 동등한 프로젝트는 문제 없이 20k의 메시지를 처리할 수 있었습니다.
이 제한을 제거하기 위해 구성할 수 있는지 조언 부탁드립니다.

@curia-damiano 이것으로 새로운 문제를 제기할 수 있습니까? IIS/Azure App Service에서 gRPC ( gRPC -Web 제외)를 지원하는 특정 기능에 대해 논의하기 위해 이 스레드를 유지하겠습니다. gRPC-Web은 좋은 대안이기 때문에 이 스레드에서 이전에 제기되었지만 스레드를 기본 gRPC 지원의 주요 목표에 초점을 유지하고 싶습니다.

@MarkStega 질문에 대한 새로운 문제를 제기할 수도 있습니까? 이 스레드가 여러 가능한 주제(관련된 경우에도)로 과부하되지 않도록 합시다. 이 문제는 IIS/Azure App Service에서 기본 gRPC 지원을 추적합니다.

Azure App Service에서 gRPC를 사용할 수 있게 되면 ETA를 받을 수 있습니까?

ETA 업데이트가 없습니다. ETA 있을 때 이 스레드를 업데이트할 것입니다. 이를 위해서는 Windows 변경이 필요하며 가능한 한 빨리 변경 사항을 적용하기 위해 해당 팀과 협력하고 있지만 일정은 우리가 직접 제어할 수 없습니다.

컨테이너로 패키징되고 Azure의 컨테이너용 웹 앱에서 실행되는 gRPC 서비스를 빌드할 수 있습니까?

@fgheysels 아니요. 필요한 HTTP/2 기능을 처리할 수 없는 프록시로 여전히 IIS 뒤에 있습니다.

현재 3가지 방법이 있습니다.

  1. 공인 IP를 노출하고 VM을 사용합니다.
  2. Azure Application Gateway Ingress와 함께 Kubernetes 사용(helm 스크립트가 오래되어 지금은 사용할 수 없기 때문에 지침 실패) 또는 nginx ingress 사용(방화벽 및 DoS 완화 손실)
  3. Azure Container Services를 사용하고 공용 IP에 노출하거나 nginx를 사용하여 역방향 프록시하거나 Azure Application Gateway를 사용하여 역방향 프록시합니다.

다른 것은 작동하지 않습니다.

@JohnGalt1717

Azure Container Services를 사용하고 공용 IP에 노출하거나 nginx를 사용하여 역방향 프록시하거나 Azure Application Gateway를 사용하여 역방향 프록시합니다.

Azure Application Gateway는 현재 작동하지 않습니다. 동일한 제한 사항이 있습니다

.net 코드를 사용하여 gpogle 클라우드에서 실행할 수 있을까요?

2020년 4월 1일 수요일 오전 7시 26분 Sourabh Shirhatti, 알림 @github.com
썼다:

@JohnGalt1717 https://github.com/JohnGalt1717

Azure Container 서비스를 사용하고 이를 공용 IP에 노출하거나 nginx를 사용하여
역방향 프록시하거나 Azure Application Gateway를 사용하여 역방향 프록시합니다.

Azure Application Gateway는 현재 작동하지 않습니다. 그것은 같은
한정


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-606855605 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7LVZJTQ2QPRHVB5G5TRKJGYLANCNFSM4HDHMSDA
.

@shirhatti 좋아요, 그래서 이것은 계속 악화되고 있습니다. Microsoft는 gRPC가 포함된 .NET을 Microsoft Azure에서 실행할 수 없도록 효과적으로 만들었습니다. 그렇게 슬프지 않다면 지옥처럼 재미있을 것입니다.

업데이트된 목록은 다음과 같습니다.

  1. 공용 IP를 노출하고 VM을 사용합니다(VM에 haproxy, nginx 등을 넣어 리버스 프록시 사용).
  2. nginx 수신과 함께 Kubernetes(AKS)를 사용합니다.

메모리가 제공되는 경우 ACS가 여전히 IIS를 앞에 두기 때문에 ACS가 작동할 것이라고 생각하지 않습니다.

로드 밸런서가 Windows의 IIS일 수도 있기 때문에 #2도 작동하지 않을 수 있습니다. 실제로 Azure의 어느 곳에서나 이 기능을 사용할 수 있는 사람이 있습니까?

이 github 티켓이 .NET 팀과 현재 진행 중인 일에 대해 몇 달 동안 말한 내용을 정의한다고 생각합니다.

Microsoft는 gRPC가 포함된 .NET을 Microsoft Azure에서 실행할 수 없도록 효과적으로 만들었습니다. 그렇게 슬프지 않다면 지옥처럼 재미있을 것입니다.

여기에 .NET과 관련된 것은 없으며 HTTP/2와 관련된 Windows 및 Azure 인프라에 제한이 있습니다. Azure의 다른 웹스택에서도 동일한 문제가 발생합니다. Windows와 Azure는 우리를 차단 해제하기 위해 노력하고 있지만 재배포하는 데 오랜 시간이 걸리는 기본 구성 요소를 변경해야 합니다.

이것은 모두 .net과 직접적인 관련이 있습니다. 그것은 말 그대로 .net이 azure의 언어라고 azure 및 .net 웹사이트에서 말합니다.

그러나 Azure에서는 해당 언어를 사용할 수 없지만 AWS 및 Google 클라우드에서는 쉽게 사용할 수 있습니다.

최근에 .net 팀에서 엄청난 양의 실수를 저질렀지만 그들의 오만함은 이유 없이 사상 최고였습니다.

그리고 그들은 실제 제품이 아닌 poc인 gRPC 웹을 사용하는 것 외에 다른 유형의 해결 방법을 제공하지도 않았습니다.

예, 하지만 Google 클라우드에서 모든 .net 스택을 실행할 수 있습니다. .net은 지원합니다.
gRPC 모두 괜찮습니다. 그래서 나는 그들이 이 문제를 해결할 수 있을 때까지 GPC에서 실행하는 것을 꺼려하지 않습니다.
Azure에서.
나는 앱 서비스나 서버리스 앱을 개발하는데 관심이 없습니다.
대규모 배포에 너무 비용이 많이 드는 컨테이너 솔루션
나는 가지고있다.

2020년 4월 1일 수요일 오전 9:57 James Hancock [email protected]
썼다:

이것은 모두 .net과 직접적인 관련이 있습니다. 그것은 말 그대로 하늘색에 말하고
.net은 .net이 하늘색 언어인 .net 웹사이트입니다.

그러나 Azure에서는 해당 언어를 사용할 수 없지만 AWS에서는 사용할 수 있습니다.
쉽게 구글 클라우드.

.net 팀의 엄청난 실수로 인해 당혹스럽습니다.
최근 들어 그들의 오만함은 이유 없이 역대 최고다.

그리고 그들은 우리에게
실제 제품이 아닌 poc인 gRPC 웹.


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-606927717 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABCSC7MRPFQBH52XDHUNP63RKJYMVANCNFSM4HDHMSDA
.

먼저 Microsoft는 방금 말한 내용에 겁에 질려야 합니다.

둘째, 가상 노드를 사용하여 웹 항목을 azure kubernetes로 전환했으며 앱 서비스 비용의 절반 정도가 소요되고 성능은 두 배입니다.

Aks는 제대로 작동하지 않고 오래된 문서이지만 일단 관리되는 ID를 얻고 공용 IP가 제자리에 있으면 나머지는 간단합니다.

예, 하지만 이것은 Microsoft에 있어 정말 큰 변화입니다! 그리고 나는 좋아한다
http Rx로 전환할 수 있지만 gRPC의 단순함. 나는 내 것을 얻을 수 없었다
SSL/TLS 문제가 있는 것처럼 작동하는 솔루션에 대한 websocket.
S1 앱 서비스와 동일한 비용으로 azure kubs를 얻을 수 있는 것 같습니다.
성능을 확인해야 한다.

2020년 4월 1일 수요일 오전 10:13 James Hancock [email protected]
썼다:

먼저 Microsoft는 방금 말한 내용에 겁에 질려야 합니다.

둘째, 웹 항목을 다음을 사용하여 azure kubernetes로 전환했습니다.
가상 노드에 대한 비용은 앱 서비스 비용의 절반 정도입니다.
우리와 두 배의 성능을 가지고 있습니다.

Aks는 제대로 작동하지 않는 구식의 엉망입니다.
문서화되지만 관리되는 ID와 공개 IP를 확보하면
나머지는 똑바로.


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-606933338 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABCSC7O3N4XVCWM5MGCTS33RKJ2I7ANCNFSM4HDHMSDA
.

이것은 모두 .net과 직접적인 관련이 있습니다. 그것은 말 그대로 .net이 azure의 언어라고 azure 및 .net 웹사이트에서 말합니다.

이것은 명백히 사실이 아닙니다. 기본 TCP 및 HTTP 스택은 .NET을 사용하여 작성되지 않습니다. Microsoft는 gRPC에 대한 기반을 조정하기 위해 노력하고 있습니다. 이것은 Azure 자체를 포함하여 Windows 서버에서 실행되는 모든 것에 대한 연쇄 효과가 있는 복잡한 전달입니다.

최근에 .net 팀에서 엄청난 양의 실수를 저질렀지만 그들의 오만함은 이유 없이 사상 최고였습니다.

이런 방식의 비생산적이고 유치하고 무의미한 징징거림은 전혀 필요하지 않습니다. 이것은 .NET 팀과 아무 관련이 없습니다. 그들은 대부분의 gRPC를 기본적으로 이식했기 때문에 PoC에서 작업하고 필요한 경우 해결 방법을 사용할 수 있으며 성숙한 성인처럼 기본 플랫폼이 최종 부품을 제공할 준비가 될 때까지 기다릴 것입니다.

@오이징

.NET은 Azure의 언어입니다. 마이크로소프트는 그것을 그렇게 마케팅한다. .NET gRPC는 Azure에서 이해할 수 없습니다. 100% 사실입니다. 출시 당시에는 사용할 수 없었고 1년 후에는 더 나빠졌다는 것은 완전한 실패입니다. 스택이 Microsoft 내부의 .NET 팀에서 작성하지 않는다는 것은 관련이 없습니다. 마이크로소프트마이크로소프트 입니다. 나는 그들의 작은 영지와 인위적인 경계, 정렬되지 않은 우선순위에 대해서는 신경 쓰지 않습니다. 나는 실제로 작동하는 가능한 최고의 제품에 관심이 있습니다. 나는 마이크로소프트가 .NET이 오픈 소스이기 때문에 더 이상 유료 제품이 되지 않는다고 주장하는 것에 신경 쓰지 않는다. 유료 상품입니다. Azure, Office 및 Windows를 사용하여 간접적으로 비용을 지불합니다.

그리고 아니요, 우리는 기다리지 않을 것입니다. 우리는 그것이 작동하는 다른 클라우드 공급자로 이동할 것입니다. 마이크로소프트가 끝없이 추진하고 있는 것입니다. 젠장, Microsoft 지원 담당자가 있었는데 "[런타임에 의도적으로 이 문제를 해결했다는 사실이] 마음에 들지 않으면 다른 사람의 제품을 사용하셔도 됩니다."라고 인용하여 약 100명의 고객에게 말합니다. 예, 지금까지 제안한 대로 정확히 수행한 8개와 조사 중인 30-40개를 알고 있습니다. 해당 지원 에이전트로부터 MS의 예상 손실 수익은 약 280만 달러이며 계산 중입니다.

네, 그것이 바로 우리 모두가 할 일입니다. 조언에 감사드립니다. 우리는 Azure를 떠날 것이고 경영진이 곧 머리를 숙이지 않으면 .NET을 떠날 것입니다.

그들이 걱정해야 하는 것은 나 같은 사람들이 자신이 책임지지 않는 이러한 대규모 공적 실패에 대해 불평하지 않고 대신 아무 소리도 들리지 않고 모두가 신경 쓰지 않을 때입니다. 약 1년 전 Xamarin Forms가 일반적으로 동일한 Xamarin Forms 및 Xamarin 빌드로 Apple Store, Android Store 및 Windows Store에 빌드할 수 없는 상태로 18주가 지나갔을 때 발생했습니다. 내가 게시하고 그들은 그것을 인정했고 18주 후, 그것이 단지 예외적인 경우가 아니라 완전한 휴식임에도 불구하고 단 1명만이 버그 보고서를 팔로우했습니다. 왜요? 아무도 Xamarin Forms에 관심을 두지 않고 퇴사하여 타사 도구를 사용하기 시작했으며 Microsoft는 데스크톱과 휴대폰을 잃어버렸습니다. (그리고 네오와 듀오를 통해서도 그것을 되찾기 위해 실패한 동일한 접근 방식을 계속 시도하고 있습니다.) 지금 사람들은 여전히 ​​.NET에 자신의 목소리가 있고 그들의 불만이 귀에 들리지 않을 것이라고 생각하며 이 문제는 해결될 것입니다. .NET 리더십은 그렇지 않으며 결과가 Xamarin Forms와 동일하다는 점을 분명히 하기 위해 열심히 노력하고 있습니다.

트레일러 헤더 부분은 스택 오버플로에서도 생각보다 시급하게 필요한 부분입니다. 여기서 우선순위 지정을 도와드릴까요?

사용 사례

HTTP 로그(HAProxy에서)에 캡처하기 위해 서버 헤더를 통해 타이밍을 수행합니다. X-Sql-DurationMs , X-Sql-Count , X-Reds-DurationMs 등과 같은 여러 헤더가 있으므로 이를 캡처하고 이에 대한 메트릭을 집계할 수 있습니다. 자세한 내용이 도움이 되는 경우 이 블로그 게시물에 섹션이 있습니다. 이것은 전체 응답이 버퍼링되었기 때문에 ASP.NET MVC 5(전체 프레임워크)에서 충분히 잘 작동했습니다. 보기에서 쿼리를 거의 수행하지 않기 때문에 전체적으로 잘 작동하는 ~99% 정확한 타이밍 전략이었습니다.

이제 .NET Core에서 실행 중이며 모든 것이 스트리밍됩니다. 이것의 문제는 버퍼링이 없기 때문에 완료되기 전에 타이밍 헤더가 전송된다는 것입니다. 가혹한 거래입니다. 이러한 타이밍을 트레일러 헤더로 보내고 캡처할 수 있다면 이 문제를 빠르게 고칠 수 있습니다. 그러나 우리는 여기에서 IIS 차단기에 있는 것처럼 보이며 이 기능이 작동하도록 하기 위해 업그레이드(또는 IIS에서 벗어나는 것)에 의존하고 있습니다.

개인적으로 Server-Timing 헤더를 보내는 MiniProfiler와 같은 다른 용도도 있습니다 .

이에 대한 우선 순위를 어떻게 도울 수 있습니까? 추가 사용 사례가 전환에 도움이 될 가능성이 있습니까?

@NickCraver 감사합니다. 이 작업은 이미 우선 순위가 높고 진행 중이지만 AppService와 같은 서비스에 배포하는 것은 복잡하고 여전히 시간이 걸릴 것입니다.

Azure 롤아웃과 상관없이 곧 IIS에서 지원될 가능성이 있습니까? -- IIS에 클라이언트만 있으면 됩니다. 그게 중요하다면 말이죠. IIS가 http2 클라이언트가 될 수 있습니까?

마이크로소프트 직원들이 다리를 쭉 뻗고(현재는 전화) 다른 팀으로 넘어가는 것이 불가능해 보인다는 것이 걱정스럽다는 점에 동의해야 합니다. 그리고 하루 만에 핫픽스를 배포할 정도로 그들을 짜증나게 합니다.
asp / .net 팀이 grpc를 푸시하지 않았다면 이 대기 기간은 괜찮을 것입니다. 그러나 생산에 사용할 수 없는 제품을 마케팅하고 있기 때문에 슬프게도 필사적인 조치와 순위를 깨야 할 때입니다.

신경쓰면 이루어집니다.

편집: 나는 "하루"가 과장된 것을 알고 있지만 1년이 되었습니다!

Azure에 gRPC를 배포하는 방법을 설명하는 문서가 있습니까? 적어도 AKS를 사용? 뭔가 있으면 좋을 것입니다.

Azure에 gRPC를 배포하는 방법을 설명하는 문서가 있습니까? 적어도 AKS를 사용? 뭔가 있으면 좋을 것입니다.

@lumogox Azure에 gRPC를 배포하기 위한 단계별 가이드를 만들었습니다.
https://github.com/rupeshtech/k8s-grpc-dotntecore

@rupeshtech 실제로 가이드를 살펴보았지만 포트 80의 루트 경로에 메시지를 표시하려는 경우 작동하지 않습니다.

훌륭하지만 앱 서비스에 배포하고 싶지만 아직 ETA가 없습니다.
AKS가 앱보다 저렴하다고 다른 사람 중 한 명이 주장했습니다.
서비스, ​​믿기 어렵습니까?
어쨌든 앱 서비스나 서버리스 인프라만 사용하고 싶습니다.

2020년 5월 12일 화요일 오후 5:51 Luis Molina [email protected]
썼다:

@rupeshtech https://github.com/rupeshtech 실제로 살펴보았습니다.
그러나 가이드에서 메시지를 표시하려는 경우 작동하지 않습니다.
포트 80의 루트 경로


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627175783 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7MUWWWYCGMEK2FH663RRD5YPANCNFSM4HDHMSDA
.

AKS: b12, 2노드 클러스터는 월 $176이며 p3처럼 성능을 발휘합니다.

이 작업을 수행하려면 다음이 필요합니다.

  1. 역 프록시로 nginx 수신.
  2. Docker화된 .net 코어 앱
  3. .net 핵심 앱용 배포 템플릿
  4. 해당 배포를 위한 서비스 템플릿
  5. DNS 항목을 매핑하는 수신 템플릿
  6. k8s용 cert 봇 또는 수신에 매핑할 자체 인증서.
  7. .net 앱에서만 SSL을 끄면 RP가 망가지고 .net 코어에서 프록시 지원이 켜집니다.
  8. 공개 IP
  9. Azure 컨테이너 레지스트리

지금 Azure에서 이것을 구성하는 것은 30개 부분으로 이루어진 프로세스이며 GUI 포털을 통해 수행할 수 있는 것은 거의 없습니다. 컨테이너 레지스트리 연결, 수신 공급자 구성(Azure Application Gateway 또는 nginx 또는 haproxy 등에는 설정할 GUI가 없습니다. 다른 리소스가 포함된 서비스 주체 항목이나 관리되는 ID 항목도 제대로 자동화되지 않았습니다. 헤아릴 수 없는 이유로 둘 다 필요합니다).

와일드 카드 인증서를 수행하는 경우 certbot k8s 서비스 지원 dns 공급자 중 하나를 통해 DNS에 액세스해야 합니다.

다음은 시작하는 데 도움이 될 수 있는 환경 설정을 위한 스크립트입니다.

Azure 구성

  1. AKS 만들기
  2. az aks install-cli(아직 설치하지 않은 경우)
  3. az aks get-credentials --resource-group RGL-\ --이름 XX-AKS-\
  4. az network public-ip create --resource-group MC_RGL-\ _XX-AKS-\ _eastus --이름 PIP-AKS-\ --sku 표준 --allocation-method 정적 --query publicIp.ipAddress -o tsv
  5. api, www, admin을 DNS의 공개 IP(예: beta.XX.com)에 매핑합니다.
  6. az identity create -g RGL-\ -n XX-MI-AKS-\ -o json(ClientId, PrincipalId, ID 및 이름 기록)
  7. az 역할 할당 create --role 리더 --assignee \ --범위 /구독/\ /리소스 그룹/RGL-\
  8. Azure Active Directory 앱에서 서비스 주체 정보 가져오기: XX-AKS-\ SP-xxxx(레코드 이름, 클라이언트 ID)
  9. 만료가 없는 클라이언트 암호를 생성하고 기록합니다.
  10. az 역할 할당 create --role "관리 ID 운영자" --assignee \ --scope "\ "
  11. DNS 영역 ID 가져오기: az network dns zone list --query "[].{ id: id, name: name}"
  12. az 역할 할당 create --assignee \ --role 기여자 --scope \
  13. az 역할 할당 create --assignee \ --role 기여자 --scope \
  14. az aks 업데이트 -n XX-AKS-\ -g RGL-\ --attach-acr clcr\
  15. 관리 ID 추가(XX-MI-AKS-\ ) 키 자격 증명 모음

Kubernetes Let's 암호화(프로덕션이 아닌 경우)

  1. kubectl 네임스페이스 생성 ingress-basic
  2. helm repo 안정적인 https://kubernetes-charts.storage.googleapis.com/ 추가
  3. helm install nginx-ingress stable/nginx-ingress --namespace ingress-basic --set controller.replicaCount=2 --set controller.nodeSelector."beta.kubernetes.io/os"=linux --set defaultBackend.nodeSelector." beta.kubernetes.io/os"=linux --set controller.service.loadBalancerIP="\ "
  4. 확인: kubectl --namespace ingress-basic get services -o wide -w nginx-ingress-controller
  5. kubectl 적용 --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.14.3/cert-manager.yaml
  6. 구독 및 서비스 원칙 ClientId로 issuer.yaml 업데이트
  7. 인증서.yaml을 DNS 주소로 업데이트
  8. 도메인 정보 등으로 ingress.yaml을 업데이트합니다.
  9. Service Principal Secret의 Base64 버전 만들기: echo \ | 오픈슬 베이스64
  10. 비밀로 secure-dazuredns.yaml 업데이트

또는 Kubernetes Azure 애플리케이션 게이트웨이

  1. 작동하지 않습니다. 완전한 혼란

완전한 Kubernetes 구성

  1. kubectl 적용 -f https://raw.githubusercontent.com/Azure/aad-pod-identity/master/deploy/infra/deployment-rbac.yaml
  2. 레지스트리, keyvault, 환경 및 계측 키로 배포 API 업데이트
  3. 배포 포털 및 배포 관리자에서 레지스트리 업데이트
  4. identity-binding.yaml의 값 업데이트(ClientId도 위의 관리 ID에서 가져옴)
  5. kubectl 네임스페이스 XX 생성
  6. kubectl config set-context --current --namespace=XX
  7. kubectl 적용 -k ./\
  8. 인증서를 사용할 수 있는지 확인: kubectl describe certificate XX-tls-secret

네, 정말 어렵습니다. 그리고 아니요, k8s에는 더 쉬운 방법이 없습니다. 유일한 다른 옵션은 공개 IP가 있는 VM이고 앱 앞에 RP를 사용하는 것입니다. Linux VM을 사용하고 도커를 실행할 수 있으며 단일 docker-compose 파일을 사용하여 HAproxy와 앱을 도커 컨테이너에 매우 쉽게 설치할 수 있습니다.

그렇지 않으면 Windows 2004(2020년 봄)에서 Azure로 커널 롤아웃을 시작할 때까지 문제가 됩니다. (그것이 거기에 있고 11월까지 지연되지 않는다고 가정)

와우 친구 정말 감사합니다. 하지만 저 또한 정말 열렬한 팬입니다.
NoOps 접근 방식을 사용하는 Azure Dev Ops는 AKS가
내 리그.
특히 훨씬 적은 비용으로 괜찮은 앱 서비스를 실행할 수 있을 때
그보다. 또는 Azure 기능으로 전환합니다. 웹 소켓을 가져올 수 없습니다.
Azure에 배포하는 솔루션입니다.
나는 또한 Reactive Extensions의 열렬한 팬이며 멋진 Rx가 있습니다.
이렇게 밖에 있는 도구
https://github.com/lucassklp/Rx.Http
그러나 이것의 확장성에 대해서는 확실하지 않습니다.

2020년 5월 12일 화요일 오후 10:09 James Hancock [email protected]
썼다:

AKS: b12, 2노드 클러스터는 월 $176이며 p3처럼 성능을 발휘합니다.

이 작업을 수행하려면 다음이 필요합니다.

  1. 역 프록시로 nginx 수신.
  2. Docker화된 .net 코어 앱
  3. .net 핵심 앱용 배포 템플릿
  4. 해당 배포를 위한 서비스 템플릿
  5. DNS 항목을 매핑하는 수신 템플릿
  6. k8s용 cert 봇 또는 수신에 매핑할 자체 인증서.
  7. .net 앱에서만 SSL을 끄면 RP와 문제가 발생합니다.
    .net 코어에서 프록시 지원을 켭니다.
  8. 공개 IP
  9. Azure 컨테이너 레지스트리

지금 Azure에서 이를 가상으로 구성하는 30단계 프로세스입니다.
GUI 포털을 통해 수행할 수 있는 작업은 없습니다. 연결이 누락되었습니다.
컨테이너 레지스트리, 수신 공급자 구성(Azure 애플리케이션
게이트웨이나 nginx나 haproxy 등에는 설정을 위한 GUI가 없습니다. 어느 것도
다른 리소스가 포함된 서비스 주체 항목이나 관리되는 ID 항목은
둘 중 하나가 적절하게 자동화되어 있습니다(그리고 헤아릴 수 없는 이유로 둘 다 필요함).

와일드 카드 인증서를 수행하는 경우 DNS에 대한 액세스도 필요합니다.
certbot k8s 서비스 지원 dns 제공자 중 하나를 통해.

다음은 다음을 얻는 데 도움이 될 수 있는 환경을 설정하기 위한 스크립트입니다.
시작:
Azure 구성

  1. AKS 만들기
  2. az aks install-cli(아직 설치하지 않은 경우)
  3. az aks get-credentials --resource-group RGL- --이름 XX-AKS-
  4. az network public-ip create --resource-group MC_RGL-_XX-AKS-_eastus
    --name PIP-AKS- --sku 표준 --allocation-method 정적 --query
    publicIp.ipAddress -o tsv
  5. api, www, admin을 DNS의 공개 IP(예: beta.XX.com)에 매핑합니다.
  6. az identity create -g RGL- -n XX-MI-AKS- -o json(기록
    ClientId, PrincipalId, ID 및 이름)
  7. az 역할 할당 create --role 리더 --assignee --scope
    /subscriptions//resourcegroups/RGL-
  8. Azure Active Directory 앱에서 서비스 주체 정보를 가져옵니다.
    XX-AKS-SP-xxxx(레코드 이름, 클라이언트 ID)
  9. 만료가 없는 클라이언트 암호를 생성하고 기록합니다.
  10. az 역할 할당 create --role "관리 ID 운영자"
    --담당자 --범위 ""
  11. DNS 영역 ID 가져오기: az network dns zone list --query "[].{ id:
    아이디, 이름: 이름}"
  12. az 역할 할당 create --assignee --role 기여자 --scope
  13. az 역할 할당 create --assignee --role 기여자 --scope
  14. az aks 업데이트 -n XX-AKS- -g RGL- --attach-acr clcr
  15. Key Vault에 관리 ID(XX-MI-AKS-) 추가

Kubernetes Let's 암호화(프로덕션이 아닌 경우)

  1. kubectl 네임스페이스 생성 ingress-basic
  2. helm repo 안정 추가
    https://kubernetes-charts.storage.googleapis.com/
  3. helm install nginx-ingress stable/nginx-ingress --namespace
    ingress-basic --set controller.replicaCount=2 --set
    controller.nodeSelector."beta.kubernetes.io/os"=linux --set
    defaultBackend.nodeSelector."beta.kubernetes.io/os"=linux --set
    controller.service.loadBalancerIP=""
  4. 확인: kubectl --namespace ingress-basic get services -o
    와이드 -w nginx-ingress-controller
  5. kubectl 적용 --validate=false -f
    https://github.com/jetstack/cert-manager/releases/download/v0.14.3/cert-manager.yaml
  6. 구독 및 서비스 원칙 ClientId로 issuer.yaml 업데이트
  7. 인증서.yaml을 DNS 주소로 업데이트
  8. 도메인 정보 등으로 ingress.yaml을 업데이트합니다.
  9. Service Principal Secret의 Base64 버전 만들기: echo | 오픈슬
    베이스64
  10. 비밀로 secure-dazuredns.yaml 업데이트

또는 Kubernetes Azure 애플리케이션 게이트웨이

  1. 작동하지 않습니다. 완전한 혼란

완전한 Kubernetes 구성

  1. kubectl 적용 -f
    https://raw.githubusercontent.com/Azure/aad-pod-identity/master/deploy/infra/deployment-rbac.yaml
  2. 레지스트리, 키 볼트, 환경 및
    계측 키
  3. 배포 포털 및 배포 관리자에서 레지스트리 업데이트
  4. identity-binding.yaml의 값 업데이트(ClientId도
    위의 관리 ID)
  5. kubectl 네임스페이스 XX 생성
  6. kubectl config set-context --current --namespace=XX
  7. kubectl 적용 -k ./
  8. 인증서를 사용할 수 있는지 확인: kubectl describe certificate XX-tls-secret

네, 정말 어렵습니다. 그리고 아니요, k8s에는 더 쉬운 방법이 없습니다. 당신의
다른 옵션은 공용 IP가 있는 VM이고 사용자의 앞에 RP를 사용하는 것입니다.
앱. Linux VM을 사용하고 도커를 실행하고 HAproxy를 설치하고
단일 docker-compose 파일이 있는 docker 컨테이너의 앱은 꽤
용이하게.

그렇지 않으면 그들이 커널을 롤아웃하기 시작할 때까지 망할 것입니다.
Windows 2004(2020년 봄)에서 Azure로. (그것이 거기에 있었다고 가정하고
11월까지 연기되지 않음)


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627302354 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7P74W4DK5RP2BKKI7LRRE365ANCNFSM4HDHMSDA
.

웹 소켓은 gRPC에 전념하지 않고 Azure App Services에 중점을 둔 경우 좋은 대안이 될 수 있습니다.

k8이 구성되면 Azure Devops는 쉽습니다. 도커 컨테이너를 빌드하고 build:id 태그를 사용하여 azure 저장소에 배포하도록 지시한 다음 릴리스하려면 kubectl을 실행하여 빌드 ID에 대한 올바른 태그로 배포 컨테이너를 업데이트하도록 지시하면 투명하게 롤아웃됩니다. 새 버전. 우리가 한 일은 마이그레이션 스크립트를 동시에 호출하는 여러 k8s 복제본으로 끝나지 않도록 EF 마이그레이션을 수행하기 전에 EF 마이그레이션을 수행하는 도구를 만드는 것뿐입니다.

Magic mate 감사합니다. 저도 정말 Domain Driven Design에 빠져 있습니다.
지금 무기고에 AKS를 추가할 수 있지만 고객이 다음으로 이동하기를 원합니다.
서버리스, 왜 대부분의 사람들이
컨테이너?

2020년 5월 12일 화요일 오후 11:05 James Hancock [email protected]
썼다:

웹 소켓은 gRPC에 커밋하지 않은 경우 좋은 대안이 될 수 있습니다.
Azure App Services에 중점을 둡니다.

k8이 구성되면 Azure Devops는 쉽습니다. 건설하라고 하십니다.
도커 컨테이너를 만들고 build:id 를 사용하여 azure 리포지토리에 배포합니다.
태그를 추가한 다음 릴리스하려면 kubectl을 실행하여 배포의 업데이트를 지시합니다.
빌드 ID에 대한 올바른 태그가 있는 컨테이너는
새 버전을 투명하게 출시합니다. 우리가 한 것은 도구를 만든 것뿐입니다.
EF 마이그레이션을 수행하기 전에 수행하므로
동시에 마이그레이션 스크립트를 호출하는 여러 k8s 복제본.


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627329964 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABCSC7MW7NJUS475HICIJTTRRFCQBANCNFSM4HDHMSDA
.

@acrigney 컨테이너는 꽤 광범위하게 '서버리스' 기술로 간주됩니다. 논란의 여지는 있지만 엄밀한 정의는 없다.

@acrigney 서버리스, 특히 Azure 기능이 바람직하지 않은 데는 여러 가지 이유가 있습니다.

  1. Azure Functions는 .net 코어를 사용하는 보안 패치에서 항상 뒤쳐지는 부서지기 쉬운 쓰레기 더미입니다.
  2. Azure 기능은 블랙박스에 가깝고 많은 경우에 디버그하기 어렵습니다.
  3. 일단 완전히 활용하기 시작하면 부하가 일정할 때 다른 옵션보다 비용이 많이 듭니다.
  4. Azure Functions에서 할 수 있는 것 외에는 할 수 없는 것이 없습니다.
  5. K8s는 생성하려는 클라우드에서와 마찬가지로 로컬 개발 머신에서도 동일하게 작동하는 일반적인 알려진 환경을 제공합니다. 리소스를 만들면 작동합니다. Azure 또는 AWS에서 지원하는지 여부는 중요하지 않습니다. Azure Functions와 달리 동일하고 일관되게 작동하므로 정기적으로 로컬에서와 Azure에서 다른 결과를 얻었습니다.
  6. 로드된 시스템의 K8 비용은 Azure Functions보다 저렴합니다.
  7. K8s는 기능보다 배포를 더 잘 수행합니다.
  8. 도커로 원격으로 VS 코드 작업을 시작하면 돌아가고 싶지 않을 것입니다. 100% 일관성을 위해 프로덕션과 동일한 환경 동일한 구성. (WSL2 docker로 개발하기 위해 docker 내부에서 k8s를 사용하고 Windows 10 2004에서 훌륭하게 작동하는 Linux에서 k8s를 스핀업하지만 k8s의 전체 개발은 곧 제공될 예정입니다)
  9. k8s는 VM, 로드 밸런싱 등을 관리할 필요 없이 VM의 모든 자율성을 제공합니다. 그냥 작동합니다.
  10. 플랫폼 타겟팅 및 IL을 사용하여 도커 이미지를 올바르게 빌드하면 k8s에서 마이크로 서비스를 연결하는 것이 Azure 기능과 동일하므로 크기 조정 문제가 없습니다.

그것은 단지 짧은 목록입니다. Azure 기능은 이론상 훌륭하지만, 그것을 사용하여 벽에 머리를 박기 시작하고 그만한 가치가 없다는 것을 알게 됩니다.

Windows 2004(2020년 봄)에서 Azure로 커널 롤아웃을 시작할 때까지.

IIS에 필요한 작업은 아직 진행 중이며 2004 릴리스에서는 사용할 수 없습니다.

@트래처 와우. 그냥 아야. 따라서 gRPC를 지원하는 .net 코어와 전 세계 대다수의 개발자가 사용할 실행 가능한 방법이 없는 Azure와 함께 1년 이상이 지날 것입니다.

MS는 RP용 IIS가 아닌 nginx 또는 ha 프록시를 사용하는 진정한 도커 기반 앱 서비스를 만들어야 합니다. 이것은 미쳤다.

정말 짝이군요, 제 생각에는 그게 늘어나는 것 같아요. AKS는 확실히 확장할 수 있지만
특히 다중 실행에 필요한 메시징 결합과 함께
나는 거의 컨테이너를 고려하지 않을 대규모 프로젝트의 컨테이너
서버리스 기술의 이상을 유지합니다. 나는 쉽게 플러그 앤 플레이 할 수 있습니다
앱 서버 및 기능이 있는 백엔드 기술 마이크로서비스
컨테이너의 민첩성?

2020년 5월 12일 화요일 오후 11:31 onionhammer [email protected]
썼다:

@acrigney https://github.com/acrigney 컨테이너는 꽤 광범위합니다.
'서버리스' 기술로 간주


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627347120 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7PPWZ7MPIETCXPEFYDRRFFUNANCNFSM4HDHMSDA
.

@acrigney 물론 그렇겠죠. 그리고 Azure Functions인 종속성 지옥도 없을 것입니다. (그리고 원하는 경우 컨테이너 및 k8에서도 Azure Function 호스트를 쉽게 사용할 수 있음)

@acrigney 앱 서비스에서 실행되는 다른 마이크로 서비스에 gRPC를 노출하려고 합니까? 토폴로지는 어떻게 생겼습니까?

고마워 친구하지만 나는 당신이 의존 지옥이나 타이트가 없을 것이라고 생각합니다.
기능과의 결합. DDD 응용 프로그램을 사용하여 상태 저장 마이크로 서비스를 만듭니다.
Azure 앱 서비스로 서비스를 제공하고 상태 비저장 마이크로서비스를 만듭니다.
Azure 기능의 DDD 애플리케이션 서비스. DDD 앱 서비스 노출
DTO는 도메인 개체를 사용하고 다른 앱 서비스는 관찰할 수 있습니다.
이러한 도메인 개체에 의해 발생한 이벤트. 컨테이너가 필요없고 한 번만
컨테이너를 빌드하면 많은 중복 코드가 있을 것입니다.
다른 용기에 필요할 것입니다.

2020년 5월 13일 수요일 오전 12:09 James Hancock [email protected]
썼다:

@acrigney https://github.com/acrigney 당연히 그렇게 할 것입니다. 당신 은요
Azure Functions인 종속성 지옥도 없습니다. (그리고 당신은 할 수 있습니다
컨테이너 및 원하는 경우 k8에서도 Azure Function 호스트를 쉽게 사용)


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627369635 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABCSC7PQLO2K4RVWBQRGQS3RRFKCZANCNFSM4HDHMSDA
.

it-does-not-run-on-IIS-warning<marquee> 태그를 사용하여 페이지 상단에 배치해야 합니다. https://docs.microsoft.com/en-us/aspnet/core /grpc/?view=aspnetcore-3.1

프로토타이핑을 하고, proto 파일을 만들고, JWT를 사용하여 서버, 클라이언트, 인증을 구성하고 클라이언트에게 전체 아이디어를 다음과 같이 제시했다면 정말 inject profanity here 입니다. since-sliced-bread를 사용하여 IIS에서 실행 중이기 때문에 프로덕션에서 사용할 수 없다는 것을 알 수 있습니다. :(

Windows 2004(2020년 봄)에서 Azure로 커널 롤아웃을 시작할 때까지.

IIS에 필요한 작업은 아직 진행 중이며 2004 릴리스에서는 사용할 수 없습니다.

예상/로드맵이 있습니까?

it-does-not-run-on-IIS-warning<marquee> 태그를 사용하여 페이지 상단에 배치해야 합니다. https://docs.microsoft.com/en-us/aspnet/core /grpc/?view=aspnetcore-3.1

맞습니다. 명확히 하기 위해 https://github.com/dotnet/AspNetCore.Docs/issues/18336 을 제출했습니다.

예상/로드맵이 있습니까?

아니요, 신뢰할 수 있는 추정치를 제공하기에는 움직이는 부품이 너무 많습니다.

누구든지 grpc 및 kestrel을 사용하여 nginx를 구성하는 방법에 대한 문서가 있습니까?

빠른 질문: IIS 및 Azure App Service에 대한 지원이 함께 연결되어 있습니까? 아니면 별도로 제공될 수 있습니까/있습니까?

고마워요!

그것들은 다소 결합되어 있습니다. Azure App Service의 수신 및 Windows 호스팅은 IIS에 의존하므로 IIS에 대한 지원을 받는 것이 전제 조건입니다.

그런 다음 App Service는 이러한 수정 사항이 있는 빌드를 기반으로 배포해야 하므로 App Service는 IIS 지원 이후에 제공됩니다.

빠른 질문: IIS(10.0)에 gRPC 서버를 배포했는데 이제 "Status(StatusCode=Cancelled, Detail=\"No grpc-status found on response.\")" 오류가 발생합니다. WebApi 프로젝트를 gRPC 클라이언트로 사용했습니다. 누구든지 나를 도울 수 있습니까?

빠른 질문: IIS(10.0)에 gRPC 서버를 배포했는데 이제 "Status(StatusCode=Cancelled, Detail="No grpc-status found on response.")" 오류가 발생합니다. WebApi 프로젝트를 gRPC 클라이언트로 사용했습니다. 누구든지 나를 도울 수 있습니까?

할 수 없습니다. gRCP는 IIS에서 지원되지 않습니다.

@lumogox @Dhananjay48 참고: GRPC-web은 IIS에서 지원되며 대부분의 경우 클라이언트 스트리밍만 잃게 됩니다. 그래서 그것은 좋은 방법은 아니지만 해결 방법입니다.

그렇지 않으면 내가 보고 있는 바에 따르면 IIS에서 이 문제가 해결되기 전에 최소한 12월까지 기다리고 있으므로 nginx와 같은 다른 것을 역 프록시로 사용하십시오.

Azure App Service에 GRPC를 배포하려는 경우 지금 Linux 컨테이너를 사용하여 수행할 수 있습니다.

@EdiWang 이것은 현재 Linux용 App Service에서 지원되지 않습니다. 현재 이 기능을 활성화하기 위해 App Service와 협력하고 있지만 공유할 ETA가 없습니다.

Linux에서 실행되는 docker 컨테이너인데도 webapp 앞에 여전히 HTTP.sys가 있기 때문입니까?

모든 앱 서비스는 iis에 의해 역방향 프록시된다는 것을 이해합니다. 따라서 이 문제가 해결될 때까지 작동하지 않습니다.

공용 IP가 있거나 ha 또는 nginx 등(Linux)에 의해 rped된 항목만 작동합니다. nginx 또는 ha가 있는 Kubernetes는 예제로 제대로 작동하지만 수신으로 애플리케이션 게이트웨이는 작동하지 않습니다.

모든 앱 서비스는 iis에 의해 역방향 프록시된다는 것을 이해합니다. 따라서 이 문제가 해결될 때까지 작동하지 않습니다.

공용 IP가 있거나 ha 또는 nginx 등(Linux)에 의해 rped된 항목만 작동합니다. nginx 또는 ha가 있는 Kubernetes는 예제로 제대로 작동하지만 수신으로 애플리케이션 게이트웨이는 작동하지 않습니다.

나의 이해이기도 하다. 모든 앱 서비스가 IIS에 의해 시작되는지 확인하기 때문에 실제로 여기까지 왔습니다. 여기 문서에서: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#when-to-use-kestrel-with-a-reverse- 프록시 - 인터넷에 kestrel을 노출하려는 경우 kestrel 앞에 역방향 프록시를 설치하도록 조언합니다. :) Windows에서 실행할 때 IIS가 있다는 것을 알고 있지만 HTTP.sys 또는 IIS를 확인할 수 있는 항목을 찾을 수 없습니다. 앱 서비스에서 docker를 실행할 때도 프론트입니다. 이 스레드는 내가 이제까지 온 가장 가까운 것입니다. 재미있는 점은 제가 gPRC에서도 꽤 흥미롭기 때문에 이 스레드를 구독하고 있다는 것입니다. :)

iis는 Linux를 포함한 컨테이너 기반 앱 서비스에도 앞장서고 있음을 확인할 수 있습니다.

유일한 옵션은 rp 또는 aks를 직접 수행한 VMS입니다.

@davidfowl AppService 유저 보이스는 그다지 주목받지 못했습니다.

https://feedback.azure.com/forums/169385-web-apps/suggestions/40585333-grpc-support-in-azure-app-service
이것이 느린 구현의 이유가 될 수 있습니까? 이 문제를 보듯이 gRPC 지원이 중요하다고 생각합니다.

예, 특히 웹 소켓이 작동하도록 할 수 없었기 때문에
많이 달려야 하기 때문에 컨테이너 비용이 걱정됩니다.

2020년 6월 12일 금요일 오후 9시 58분 Takekazu Omi [email protected]
썼다:

@davidfowl AppService 유저 보이스는 그다지 주목받지 못했습니다.

https://feedback.azure.com/forums/169385-web-apps/suggestions/40585333-grpc-support-in-azure-app-service
이것이 느린 구현의 이유가 될 수 있습니까? 당신이 이것을 볼 때
문제, gRPC 지원이 중요하다고 생각합니다.


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-643232429 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7L4452ZISXIPNAXWYLRWIKADANCNFSM4HDHMSDA
.

요청을 추가하는 것은 여전히 ​​매우 중요합니다.

@davidfowl 말보다 훨씬 쉽습니다. 새 에지가 있는 Microsoft 계정으로 사이트에 로그인해 보십시오. 새 창을 띄우고 아무 것도 하지 않습니다. 내 이메일로 로그인해 보십시오. 비밀번호를 잊어버렸습니다. 비밀번호 이메일은 @outlook.com 이메일 주소의 정크 메일로 이동합니다. 그것을 변경하고 로그인하면 비밀번호 관리자가 비밀번호 등을 저장하라는 메시지가 표시되지 않습니다.

그냥 와우 나쁘다. 결과적으로 Azure 팀이 좋은 피드백을 받지 못하고 있다고 생각합니다. 이 문제를 올바른 사람들에게 전달하여 문제를 해결할 수 있기를 바랍니다.

누군가 grpc를 iis에 호스팅하는 데 도움이 될 수 있습니다.
다음은 매력처럼 원격 게시를 통해 iis에 호스팅하는 gRPC-Web 코드 우선 접근 방식으로 grpcweb Blazor WebAssembly 를 작업하는 예입니다. 다른 방법으로도 작동할 수 있다고 가정합니다. 성능 테스트를 수행하지 않았으므로 이에 대해 언급할 수 없지만 적어도 중간 규모 솔루션까지는 무엇이든 잘 작동할 것이라고 생각합니다.
여기 github에 대한 링크가 있습니다
또한 지루한 protobuff 선언이 아닌 protobuf-net.Grpc.AspNetCore를 사용합니다. 구현으로 직접 이동하거나 요청/응답에 추가 메서드를 추가할 수 있을 때 매우 좋습니다.

안녕하세요, Grpc 메시지에 문자열 배열 유형 dataType을 정의해야 합니다. 어떻게 해야할지 모르겠다. 지금 나는 그것을
반복되는 문자열 이름 = 1,
여기에 문자열 배열 유형으로 이름 필드가 필요합니다. 그러나 필드에 데이터를 바인딩할 때 필드가 읽기 전용 유형이라는 오류가 표시됩니다.

@Dhananjay48 이것은 StackOverflow가 아닙니다. 거기에 질문하십시오.
App Service의 gRPC와 관련된 항목에 대해 이 문제를 유지합시다.

모든 앱 서비스는 iis에 의해 역방향 프록시된다는 것을 이해합니다. 따라서 이 문제가 해결될 때까지 작동하지 않습니다.

공용 IP가 있거나 ha 또는 nginx 등(Linux)에 의해 rped된 항목만 작동합니다. nginx 또는 ha가 있는 Kubernetes는 예제로 제대로 작동하지만 수신으로 애플리케이션 게이트웨이는 작동하지 않습니다.

nginx에서 '역 프록시 구성에 사용되는 Kestrel'이 해결책이 될 수 있습니까? https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#when -to-use-kestrel-with-a-reverse-proxy'

예제 호스팅 솔루션을 포함하기 위해 문서에서 @JamesNK 에 대한 제안을 넣었습니다.
https://github.com/dotnet/AspNetCore.Docs/issues/18953

https://devblogs.microsoft.com/aspnet/grpc-web-for-net-now-available/?utm_source=vs_developer_news&utm_medium=referral
최근에 발표되었으며 Azure에 배포할 수 있습니다.

2020년 6월 25일 목요일 오후 1시 48분 OzBob [email protected] 에서 다음과 같이 작성했습니다.

모든 앱 서비스는 iis에 의해 역방향 프록시된다는 것을 이해합니다.
따라서 이 문제가 해결될 때까지 작동하지 않습니다.

공용 IP가 있거나 ha 또는 nginx 등(Linux)에 의해 rped된 항목만
일하다. nginx 또는 ha가 있는 Kubernetes는 예제로 잘 작동하지만 애플리케이션
게이트웨이는 인그레스가 되지 않습니다.

nginx에서 'Kestrel이 역방향 프록시 구성에 사용됨'이 될 수 있습니다.
해결책?
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#when-to-use-kestrel-with-a-reverse-proxy
'

@JamesNK https://github.com/JamesNK 에 제안을 넣었습니다.
예제 호스팅 솔루션을 포함하는 문서:
dotnet/AspNetCore.Docs#18953
https://github.com/dotnet/AspNetCore.Docs/issues/18953


당신이 언급되었기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-649198280 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/ABSCSC7KBUALMCXDGUS2NV7LRYLCKNANCNFSM4HDHMSDA
.

@acrigney 및 여기 Ch9에서도 언급됨: https://youtu.be/T4RD3W2MgHQ?list=TLPQMjUwNjIwMjB6we-UTBA_VA&t=288 by @shirhatti (https://twitter.com/sshirhatti)

이러한 시나리오를 활성화하기 시작하기 위해 Windows 팀과 협력하고 있음을 알리고 싶었습니다. 다음은 이에 대한 Windows 팀의 블로그 게시물 이며 https://github.com/dotnet/aspnetcore/pull/24120 에는 ASP.NET Core의 내용을 노출하기 위한 일부 후속 작업이 있습니다.

이 모든 땅이 완성되기까지는 아직 시간이 걸리지만 최소한 진전이 이루어지고 있다고 보고할 수 있어 기쁩니다.

후속 조치에 감사드립니다. 매우 유용하고 감사합니다!!

2020년 7월 22일 수요일 오전 11:17 Kevin Pilch [email protected]
썼다:

저는 우리가 Windows 팀과 협력하여
이러한 시나리오를 활성화하기 시작합니다. 다음은 블로그 게시물입니다.
Windows 팀의 https://aka.ms/grpcblogpost 및 #24120
https://github.com/dotnet/aspnetcore/pull/24120 에는 일부
ASP.NET Core에서 사물을 노출하기 위한 후속 작업.

이 모든 땅이 완성되기까지는 아직 시간이 걸리지만
최소한 진전을 보이고 있다고 보고합니다.


당신이 댓글을 달았기 때문에 이것을 받는 것입니다.
이 이메일에 직접 답장하고 GitHub에서 확인하세요.
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-662547810 ,
또는 구독 취소
https://github.com/notifications/unsubscribe-auth/AAUKMASPCV3UE47OJZ6TIMDR44GKTANCNFSM4HDHMSDA
.

이러한 시나리오를 활성화하기 시작하기 위해 Windows 팀과 협력하고 있음을 알리고 싶었습니다. 다음은 이에 대한 Windows 팀의 블로그 게시물 이며 #24120에는 ASP.NET Core의 내용을 노출하기 위한 일부 후속 작업이 있습니다.

이 모든 땅이 완성되기까지는 아직 시간이 걸리지만 최소한 진전이 이루어지고 있다고 보고할 수 있어 기쁩니다.

이것은 이미 5.0 미리 보기에서 AspNetCore의 HttpSys 서버에 통합되었습니다. 시도해 보십시오. 지금 이 계층에서 문제를 식별할 수 있다면 이 위에 IIS 계층을 추가할 때 문제가 줄어들 것입니다.

ASP.NET Core 대상 .NET 5 미리 보기를 사용하는 경우 IIS에서 전체 gRPC를 수행할 수 있음을 의미합니까?

아직. 여기에는 다양한 부분이 있습니다.

  1. Windows의 Http.sys 모듈
  2. HttpSysServer에서 이에 대한 ASP.NET Core 지원
  3. Windows에서 이에 대한 IIS 지원
  4. IIS에서 이에 대한 ASP.NET Core 지원
  5. Azure App Service가 사용하는 역방향 프록시에서 이에 대한 지원
  6. 1 및 3이 포함된 Windows 빌드를 배포하는 Azure App Service.
  7. 5에서 역방향 프록시 빌드를 배포하는 Azure App Service
  8. 2 및 4가 포함된 ASP.NET Core 빌드를 배포하는 Azure App Service.

@Tratcher 가 말한 것은 .NET 5의 미리보기에서 1과 2를 사용할 수 있다는 것입니다. 우리는 지금 3과 4를 작업하고 있지만 1과 2를 시도하면 Http. sys 지원은 IIS 지원의 토대입니다.

1은 Windows 미리 보기에서 사용할 수 있고 2는 .NET 5 미리 보기에서 사용할 수 있습니다.

업데이트된 http.sys에서 Windows 참가자 미리 보기를 사용할 수 있습니다.
https://techcommunity.microsoft.com/t5/networking-blog/windows-server-insiders-getting-grpc-support-in-http-sys/ba-p/1534273

이것이 Windows Server 2016/2019에 대한 Windows 업데이트로 제공될 것인지에 대한 아이디어가 있습니까?

그리고 IIS 지원은 이제 여기에 발표된 최신 Windows Insider 빌드에 있습니다.

우리는 이러한 변경 사항을 서비스 빌드에 백포트할 수 있는지 조사하고 있지만 아직 미정입니다. 현재로서는 기록의 유일한 계획은 향후 릴리스에 포함될 것이라는 것입니다.

이 페이지가 도움이 되었나요?
0 / 5 - 0 등급