Aspnetcore: استضافة خدمة grpc في نظام iis أو كخدمة تطبيق؟

تم إنشاؤها على ٣ أبريل ٢٠١٩  ·  153تعليقات  ·  مصدر: dotnet/aspnetcore

هل من الممكن أن تفعل هذا؟ إذا كان الأمر كذلك فكيف؟


تحديث 2020/10/28 -JamesNK

مشكلة صوت المستخدم

هناك مشكلة تتعلق بصوت مستخدم Microsoft Azure لإضافة دعم gRPC إلى خدمة التطبيقات . ضع في اعتبارك التصويت إذا كانت هذه ميزة مهمة بالنسبة لك.

gRPC- ويب

يتوفر الآن gRPC-Web مع .NET. يتوافق 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) السابق.

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: Eilon Lipton [email protected]
تاريخ الإرسال: الأربعاء ، 3 أبريل 2019 ، 6:06:17 مساءً
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

مرحبًاmoodya https://github.com/moodya ، هل قمت بفحص المستندات على https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start؟view=aspnetcore- 3.0 & علامات التبويب = استوديو مرئي ؟

إذا كنت تواجه مشكلة ، فيرجى إخبارنا ويمكننا التحقيق فيها.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479575937 ، أو كتم صوت السلسلة https://github.com/notifications/unsubscribe-auth/AlUvPONL4H1tZ- pHOakDspdkXLLgThWbks5vdN-JgaJpZM4cZ2SG .

لا يمكنني العثور على أي أمثلة حول كيفية القيام بذلك ، لذلك ربما لم يتم دعمها بعد

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: آلان مودي [email protected]
تاريخ الإرسال: الأربعاء 3 أبريل 2019 6:11:06 مساءً
إلى: aspnet / AspNetCore؛ aspnet / AspNetCore
نسخة إلى: أذكر
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

نعم ، لقد قمت بالفعل ببناء خدمة تعمل كخدمة مستضافة عامة. لقد قمت بنقله إلى قالب asp net core 3 الجديد وتشغيله على kestrel المستضاف ذاتيًا ، لكنني أتطلع حاليًا إلى استضافته خلف iis ونأمل أن يتم نشره كخدمة تطبيق في Azure. لا يمكنني تشغيل (iis) السابق.

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: Eilon Lipton [email protected]
تاريخ الإرسال: الأربعاء ، 3 أبريل 2019 ، 6:06:17 مساءً
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

مرحبًاmoodya https://github.com/moodya ، هل قمت بفحص المستندات على https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start؟view=aspnetcore- 3.0 & علامات التبويب = استوديو مرئي ؟

إذا كنت تواجه مشكلة ، فيرجى إخبارنا ويمكننا التحقيق فيها.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479575937 ، أو كتم صوت السلسلة https://github.com/notifications/unsubscribe-auth/AlUvPONL4H1tZ- pHOakDspdkXLLgThWbks5vdN-JgaJpZM4cZ2SG .

shirhatti - أي فكرة عن هذا؟

لا يمكن استضافة gRPC في IIS / Azure App Service.
لا يدعم تطبيق HTTP / 2 لـ Http.Sys رؤوس استجابة HTTP التي تعتمد عليها gRPC.

شكرا للاستجابة السريعة. كيف توصي باستضافة خدمة grpc في سيناريو إنتاج في الوقت الحالي؟ أيضًا ، هل أنت على علم بأي جداول زمنية تكون فيها خدمة grpc قادرة على الاستضافة على خدمة iis / التطبيق؟

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: سرابه شيرهاتي [email protected]
تاريخ الإرسال: الأربعاء ، 3 أبريل 2019 ، الساعة 7:13:23 مساءً
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

لا يمكن استضافة gRPC في IIS / Azure App Service.
لا يدعم تطبيق HTTP / 2 لـ Http.Sys رؤوس استجابة HTTP التي تعتمد عليها gRPC.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-479600486 ، أو كتم صوت السلسلة https://github.com/notifications/unsubscribe-auth/AlUvPNHH4- HhNsSAtugTw0MzzNco6c76ks5vdO9DgaJpZM4cZ2SG .

النهج الموصى به هو استضافة خدمة gRPC الخاصة بك على AKS.

بقدر ما تذهب المخططات الزمنية لخدمة التطبيقات ، سأرجئ إلى stefsch

شكرا لرجوعك إلي. من حيث نسيج خدمة aks Vs من حيث استضافة خدمة grpc هل هو الخيار الأفضل؟ إذا كان الأمر كذلك لماذا؟

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: سرابه شيرهاتي [email protected]
تاريخ الإرسال: الاثنين ، 8 أبريل 2019 ، الساعة 7:31:45 صباحًا
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

النهج الموصى به هو استضافة خدمة gRPC الخاصة بك على AKS.

بقدر ما تذهب المخططات الزمنية لخدمة التطبيقات ، سأرجئ إلىstefsch https://github.com/stefsch

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-480701227 ، أو كتم صوت السلسلة https://github.com/notifications/unsubscribe-auth/AlUvPLwQW8HCp- YXsz6yNaK_RH7jbZzWks5veuJRgaJpZM4cZ2SG .

أتوقع حاليًا وجود مشكلات للقيام بذلك. لقد حصلت على خدمة gRPC تعمل بشكل جيد باستخدام aspnetcore 3 Preview 3 و Kestrel. ولكن ، يظهر خطأ حول المقطورات باستخدام IIS عندما ترسل الخدمة الاستجابة (تم استلام الطلب بشكل جيد):
خطأ gPRC => 2 غير معروف: لم يتم استلام الحالة)
خطأ Dotnet => "المقطورات غير معتمدة لهذه الاستجابة" في Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer (استجابة HttpResponse ، String trailerName ، StringValues ​​trailerValues) في Grpc.AspNetCore.Server.Internal.HttpResponseExtensions.

وفقًا للرسائل أعلاه ، لا تعتقد أن iis يدعم استضافة خدمة grpc

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: alustrement [email protected]
تاريخ الإرسال: الخميس 25 أبريل 2019 الساعة 10:57:42 صباحًا
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

أتوقع حاليًا وجود مشكلات للقيام بذلك. لقد حصلت على خدمة gRPC تعمل بشكل جيد باستخدام aspnetcore 3 Preview 3 و Kestrel. ولكن ، يظهر خطأ حول المقطورات باستخدام IIS عندما ترسل الخدمة الاستجابة (تم استلام الطلب بشكل جيد):
خطأ gPRC => 2 غير معروف: لم يتم استلام الحالة)
خطأ Dotnet => "المقطورات غير معتمدة لهذه الاستجابة" في Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer (استجابة HttpResponse ، String trailerName ، StringValues ​​trailerValues) في Grpc.AspNetCore.Server.Internal.HttpResponseExtensions.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرةً ، أو قم بعرضه على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-486607635 ، أو قم بكتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/AJKS6PEAJ2UKKFS2QIKNTCZDPSF4HDANCDA .

بعد هذا التبادل 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 أو كخدمة تطبيق في الوقت الحالي.

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: alustrement [email protected]
تاريخ الإرسال: الخميس 25 أبريل 2019 الساعة 11:39:08 صباحًا
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 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/AJKS6PBQO4427EYN67SI7A3PSGC4ZANCNFS .

شكرًا ، فاتني ذلك وهو أمر منطقي في مشكلتي.
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.
shirhatti يرجى النظر في إضافة هذا إلى خارطة الطريق

وأنا أتفق أيضا.

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: Tomasz Jagusz [email protected]
تاريخ الإرسال: الجمعة ، 26 أبريل 2019 ، الساعة 9:42:58 صباحًا
إلى: aspnet / AspNetCore
نسخة إلى: موديا ؛ أشير
الموضوع: Re: [aspnet / AspNetCore] استضافة خدمة grpc في iis أو كخدمة تطبيق؟ (# 9020)

أتفق تمامًا معjbrantly https://github.com/jbrantly . يتم الإعلان عن gRPC كأحد الميزات الرئيسية لبرنامج .NET Core 3.
يجب أن يكون قابلاً للاستضافة في خدمات تطبيقات IIS / Azure.
shirhatti https://github.com/shirhatti يرجى التفكير في إضافة هذا إلى خارطة الطريق

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرةً ، أو قم بعرضه على GitHub https://github.com/aspnet/AspNetCore/issues/9020#issuecomment-486977989 ، أو كتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/AJKS6PENWT46GCJ7GQGEGPTPSK6BFANCDA

لا يمكن اقبل المزيد.

نحن نبحث فيه. يتطلب كلاً من تغييرات Windows kernel وتغييرات IIS.

davidfowl هل سيكون هذا ممكنًا عند إصدار NET Core 3؟
تعد القدرة على استضافة GRPC في خدمات التطبيقات بمثابة مانع بالنسبة لي.

حسنًا ، 29 مايو من عام 2019 ، ومع ذلك لا توجد إشارة على أن هذا سيكون ممكنًا. أنا أبحث عن استضافة خدمة GRPC في IIS وأضف شهادة لاستخدام HTTPS :(

لا ، هذا غير ممكن على IIS ، نحن نعمل على إجراء تغييرات ولكنها ستكون عملية بطيئة (لأنها تتطلب تحديث Windows).

لقد فقدت حوالي 3 أيام تقريبًا ... شكرًا iis

مرحباdavidfowl
أي تحديث؟

davidfowl هل من الممكن أن تتم إضافة هذا قبل إصدار .NET Core 3.0؟ أم يجب أن ننتظر 3.1 أو 5.0؟

لا لأنه يتطلب تغيير النوافذ. لن يكون جزءًا من 3.0 وسيتطلب أحدث إصدار من Windows (مهما كان ذلك في ذلك الوقت) للحصول على هذه الميزات. ليس هناك وقت محدد للوصول

حسنًا ، أنا في منتصف التخطيط لتطبيق نسيج الخدمة الذي سيستخدم خدمات عديمة الحالة القائمة على gRPC والجهات الفاعلة الموثوقة ، بالإضافة إلى dotnet core 3. هل سيؤثر ذلك عليّ في المؤخرة؟ إذا كنت مضيفة على SF ، أعتقد أنني سأستخدم kestrel في الصميم؟ حان الوقت لوضع النموذج الأولي.

oising نفس القارب هنا - لكننا نتدحرج ببطء نحو حاويات k8s + linux ، لذا فإن هذا النوع من المساعدة يدفعنا بهذه الطريقة على أي حال.

أنا فقط أقوم بهذا لأنني كنت ألعب مع gRPC الآن لفترة من الوقت وأريد أن أبدأ أخيرًا في اعتماده في بعض مشاريع عملائي ، لذا كنت أبحث في تدفقات عمل النشر. أشعر بالإحباط قليلاً بسبب مقدار النفقات التشغيلية الإضافية التي سيتم نشرها في الإنتاج باستخدام .net core.

استغرقت أيضًا أيامًا لمعرفة أن IIS كانت المشكلة. حقا تبحث عن حل. أي حلول؟

bingoo بدون دعم Windows و IIS أنت محظوظ. يمكنك استخدام نسيج الخدمة ولكن ليس لدي خبرة في ذلك. آمل أن يكون من الممكن استضافته على IIS أو في Azure بطريقة بسيطة.
بالنسبة للمشاريع الحالية ، فإن Grpc ليس خيارًا بالنسبة لي بسبب هذه المشكلة.

سيكون لطيفًا إذا كان هذا تحذيرًا جريئًا كبيرًا في المستندات ...

استضافة IIS غير مدعومة حتى الآن. تستخدم خدمات التطبيقات Windows Server 2016 + IIS باعتبارها الواجهة الخلفية افتراضيًا ، ولكنها الآن تدعم أيضًا Linux / الحاويات. إذا كنت تريد فقط نشر GRPC على Azure App Service ، فيمكنك القيام بذلك الآن باستخدام حاوية Linux. لكن لا يمكن مشاركة خطة خدمة التطبيق مع خطة استضافة Windows. ستحتاج إلى إنفاق أموال إضافية للحصول على خطة خدمة تطبيقات جديدة مدعومة من Linux Container.

أفضل طريقة هي استخدام AKS ثم استخدام Ambassador. السفير هو بوابة واجهة برمجة تطبيقات تستند إلى Envoy وتعمل كحاوية داخل Kubernetes. يسمح لك بتوكيل كل من grpc و grpc-web ، على سبيل المثال. متصفح لخادم grpc وأيضًا عميل grpc ، ربما ac # one لخادم grpc. إذا كنت تريد أن تستقبل الواجهة الأمامية js مكالمات gRPC ، فأنت بحاجة إلى grpc web والوكيل لأن المتصفحات أيضًا لا تدعم العناوين اللاحقة لاستجابة http2 بشكل صحيح. يستخدم Grpc Web Envoy افتراضيًا ولهذا السبب يكون Ambassador هو الأفضل.

إذا كنت تريد فقط نشر GRPC على Azure App Service ، فيمكنك القيام بذلك الآن باستخدام حاوية Linux

EdiWang هذا غير مدعوم حاليًا في خدمة التطبيقات لنظام Linux. نحن نعمل حاليًا مع خدمة التطبيقات لتمكين ذلك ، ولكن ليس لدي أي وقت محدد للوصول إلى الإنترنت لمشاركته

مرحبا أهل الخير
أنا مرتبك بعض الشيء ، لذلك لا يمكننا الحصول على خدمة grpc في اللازوردية.
لكن اللازوردية نفسها تستخدم grpc ، عامل لغة وظائف Azure Protobuf.
https://github.com/Azure/azure-functions-language-worker-protobuf
أم أنني أفتقد شيئًا هنا؟
أحاول أن أفهم: مرتبك:

GoranHalvarsson يمكنك الحصول على خدمات gRPC في Azure ، ولا يمكنك تشغيلها في خدمات تطبيقات Azure حتى الآن.

markrendle شكرا على الرد. فكيف يمكنني استخدام / إعداد خدمة gRpc في Azure؟

سيكون لطيفًا إذا كان هذا تحذيرًا جريئًا كبيرًا في المستندات ...

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

markrendle شكرا على الرد. فكيف يمكنني استخدام / إعداد خدمة gRpc في Azure؟

من خلال عدم استخدام IIS ، مما يعني استخدام Service Fabric أو AKS - كلاهما باستخدام Kestrel الخام. SF و AKS لها خصائص مختلفة. Google عن "Service Fabric vs AKS" واحتسي كوبًا كبيرًا من القهوة.

لقد قمت بإنشاء دليل خطوة بخطوة لإنشاء اختبار ونشر خدمة grpc باستخدام .NET Core 3.0
https://github.com/rupeshtech/k8s-grpc-dotntecore

لقد بحثت للتو في هذه المشكلة ، لذا لم أجرب أي شيء بعد ؛ ولكن هل حاول أي شخص استخدام Azure Web App لـ (الحاوية https://azure.microsoft.com/en-us/services/app-service/containers/)؟

أدير مجموعة من الخدمات المصغرة القائمة على عامل الإرساء في خدمات تطبيقات Azure ولدي القليل جدًا من المشكلات وسمحت لي بالتغلب على الخصائص المقيدة الأخرى لعرض خدمة تطبيقات OOB.

يعمل ikemtz gRPC عند استخدام kestral (على سبيل المثال: عند التشغيل في الحاويات).

rupeshtech شكرا لك ولكن مقالك ليس له علاقة بالموضوع.

هذه المشكلة تتعلق باستضافة gRPC (أو أي تطبيق يستخدم الرؤوس اللاحقة) في IIS أو Azure App Service.

سيكون لطيفًا إذا كان هذا تحذيرًا جريئًا كبيرًا في المستندات ...

aspnet / AspNetCore.Docs # 14684

يتم تنفيذ هذا الآن.

ikemtz لقد حاولت إجراء اختبار أساسي لاستخدام gRPC في حاوية Linux تعمل في تطبيق Azure Web للحاويات ولن يعمل ذلك معي. تعذر العثور على أي أخطاء تم الإبلاغ عنها في أي مكان ، ولكن الحاوية لن تستجيب حتى لأصوات HTTP.
إنه لعار. لست مستعدًا للانتقال إلى AKS لمجرد الحصول على هذه الوظيفة ، لذلك أعتقد أنني سألتزم بخدمات HTTP القديمة الجيدة في الوقت الحالي.

searus إذا كنت تستخدم جهازًا افتراضيًا بدلاً من ذلك (يعمل باللون الأزرق السماوي)

GoranHalvarsson لست مستعدًا للانتقال من PaaS إلى IaaS فقط للاستفادة من هذه التقنية. سأنتظر فقط حتى تتمكن خدمة تطبيقات Azure من دعم ذلك.

davidfowl أي خارطة طريق على هذا؟

يعد النشر في حاوية باستخدام Kestral أمرًا جيدًا ولكنه سهل القول
باستخدام Lets Encrypt in IIS أو خدمة التطبيق التي تعيقني حقًا.
إذا كانت هناك أي أدلة موجزة حول كيفية تشغيل مجال مخصص باستخدام Lets
تشفير على kestrel في حاوية ثم أقفز إلى رأس gRPC أولاً
وإلا فإنه من الصعب للغاية تبرير النفقات العامة لإنشاء بعض العرف
النشر فقط لاستيعاب المكدس الجديد.

يوم الأربعاء 16 أكتوبر 2019 الساعة 6:46 صباحًا Russell Seamer [email protected]
كتب:

GoranHalvarsson https://github.com/GoranHalvarsson لست مستعدا
للانتقال من PaaS إلى IaaS فقط للاستفادة من هذه التقنية. أنا سوف
انتظر حتى تتمكن خدمة تطبيقات Azure من دعم ذلك.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/aspnet/AspNetCore/issues/9020؟email_source=notifications&email_token=AMNAZYUWLYLGC5ZGB4GAFITQO2TCFA5CNFSM4HDHMSDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW5
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AMNAZYTKUYYBWKSW6AMQDHTQO2TCFANCNFSM4HDHMSDA
.

باستخدام هذا ، لا يمكن لوظائف Azure وأي شيء آخر موجود في أعلى خدمة التطبيقات استخدام gRPC و HTTP / 2. سيكون الجدول الزمني رائعًا ، حتى للمعاينات الخاصة / العامة.

نحن نعمل حاليًا على إجراء التغييرات في http.sys. بعد ذلك نحتاج إلى الرد على تلك التغييرات في IIS و ARR. ثم نحتاج إلى تحديث إصدار Windows الذي يعمل في خدمة التطبيقات للاستفادة من هذه التغييرات في IIS.

ذكر العمل ولكن من الصعب حقًا تقدير الوقت الذي سيستغرقه العملاء للحصول عليه. سنبقيك على اطلاع مع تقدم الأمور.

أشعر أن هذا شيء لم أتفاجأ به للأسف (أن تنفيذ وظيفة http الجديدة يتطلب تحديثات kernel). من الواضح أن IIS غير موجود على Linux / macosx ، لكنني سأفاجأ إذا أضفت دعمًا لـ grpc إلى خوادم نحن الأخرى لأنظمة التشغيل الأخرى ... تحتاج إلى الكثير في طريق تحديث kernel.

ربما هذه حجة / مثال لائق للفصل ... مجرد قول

أشعر أن هذا شيء لم أتفاجأ به للأسف (أن تنفيذ وظيفة http الجديدة يتطلب تحديثات kernel). من الواضح أن IIS غير موجود على Linux / macosx ، لكنني سأفاجأ إذا أضفت دعمًا لـ grpc إلى خوادم نحن الأخرى لأنظمة التشغيل الأخرى ... تحتاج إلى الكثير في طريق تحديث kernel.

ربما هذه حجة / مثال لائق للفصل ... مجرد قول

أنا موافق. من المحتمل أن يكون هذا شيئًا له علاقة بـ IIS الذي يقوم بتشغيل بعض البروتوكولات منخفضة المستوى المرتبطة مباشرة أيضًا بالنواة. يبدو غريباً ولكن على الأقل لدينا تأكيد على أن هذا يجري العمل عليه وأن التبني ليس سماءً زرقاء تمامًا.

هل تتذكر متى كان عليك الترقية إلى Windows 8 للحصول على دعم WebSocket؟ أنا أفعل أيضًا 😄

نعم ، نتذكر! إليك السبق الصحفي: تم إصدار gRPC في .NET-Core ونستخدم خدمات تطبيقات Azure لذلك من المهم أن يكون لديك بعض الخيارات ، على الأقل للاختبار ، في أسرع وقت ممكن. هل يمكن لأي شخص إخبارنا عند حدوث هذه المزامنة مع إمكانات .NET-Core التي تم إصدارها في خدمات تطبيقات Azure؟ أو حل بديل ممكن. شكرا

أشكركم على الاتصال بنا. نظرًا لعدم وجود نشاط بشأن هذه المشكلة ، فإننا نغلقها في محاولة للحفاظ على نظافة الأعمال المتراكمة لدينا. إذا كنت تعتقد أن هناك مشكلة تتعلق بإطار عمل ASP.NET Core ، والتي لم تتم معالجتها بعد ، فالرجاء إرسال مشكلة جديدة.

anurse كيف نبقي هذه القضية مفتوحة؟

تم وضعه في المناقشات ووضع علامة السؤال. أعيد فتحه.

هل هناك أي ETA على هذا حتى الآن؟

هل توجد أي بدائل قابلة للتطبيق لتشغيل gRPC في بيئة إنتاج؟
لقد نظرت في بعض الأشياء ويبدو أن استضافتها على AKS هي خيار ، أريد فقط التأكد من أننا لا نقوم بأشياء لن تساعدنا في حل مشكلتنا.

نحاول حاليًا تشغيل نوع من بيئة الإنتاج لهذا المشروع:
مشروع IdentityServer الذي يتحدث إلى API عبر gRPC
5 بوابات ويب تتحدث إلى API عبر gRPC
واجهة برمجة التطبيقات التي تتحدث إلى Discord Bot (ASP.NET Core) عبر gRPC.

لقد حاولنا استضافتهم على خادم VPS لكنني لا أعرف ما إذا كان بإمكاننا بالفعل استضافتهم في بيئة إنتاج من خلال استخدام kestrel فقط إذا كنا نريد أن تعيش كل هذه التطبيقات على نفس VPS.

هل لدى أي شخص خيار لنا حتى نتمكن من الحصول على مجالات متعددة (مجال واحد ، والباقي مجالات فرعية) مع عنوان IP واحد على 1 VPS لتشغيل جميع المشاريع باستخدام 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 ، ويعتمد على http.sys ، وهو أيضًا أحد مكونات Windows. ليس لدى IIS أو http.sys ميزات HTTP / 2 كافية لدعم gRPC. لقد عملنا عن كثب مع هذه الفرق لإدخال التغييرات ، وهم جميعًا على المسار الصحيح للإصدار القادم ، لكن لن يكون متاحًا حتى يتم نشر إصدار Windows Server مع التغييرات المناسبة.

JamesNK هل يمكنك التحدث عن مدى توفر بدائل مثل gRPC-web؟

سياق الأشخاص الذين لا يعرفون ما هو gRPC-Web: https://grpc.io/blog/state-of-grpc-web/. نظرًا لأنه يستخدم HTTP / 1.1 ، فلن يتم تطبيق قيود خدمة تطبيقات Azure عليه. الجانب السلبي هو عدم وجود فوائد HTTP / 2 (تعدد الإرسال وضغط الرأس) ، وعدم وجود دفق عميل أو ثنائي الاتجاه.

يتوفر الوكيل العكسي لمبعوث gRPC-Web الآن ، ولكن إعداده ليس سهلاً. ولا يوجد عميل .NET gRPC-Web.

لم يقرر فريق ASP.NET Core بعد ما إذا كنا سنلتزم بدعم gRPC-Web رسميًا أم لا. أنا أنظر إلى gRPC-Web الآن ، وكيف يمكن أن تبدو في .NET Core. في غضون أسبوعين ، يمكنني قول المزيد ، وربما يكون لدي معاينة تجريبية للناس لتجربتها في يناير.

نظرًا لأن IIS لا يدعم هذا ، فهل يمكن استضافة خدمة netcore gRPC خلف Nginx؟

@ دينيس - بيتروف أفعل هذا بالضبط. لقد اتبعت هذا المستند https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx؟view=aspnetcore-3.1 ويعمل gRPC بشكل رائع

هل يمكنني طرح سؤال غبي: لماذا لا يعمل هذا في خدمة تطبيقات Azure في خطة خدمة تطبيقات Linux؟

هل يشارك IIS في ذلك في مكان ما في خط الأنابيب أيضًا؟

searus هناك طبقات مشتركة بين الواجهة الأمامية وخدمات التطبيقات بغض النظر عن Linux / Windows. على سبيل المثال ، تتلقى الواجهة الأمامية لخدمة التطبيق حاليًا اتصالات HTTP / 2 ، ثم يتم إنشاء الوكلاء داخليًا على أنه بروتوكول HTTP "قديم" لموظفي خدمة التطبيقات الفرديين. أنا متأكد من أنه يعمل على دعم gRPC بشكل كامل ، لكن الأمر يتطلب بعض الجهد حيث تحتاج المكونات الداخلية إلى التحديث والاختبار والإصدار.

شكراdevlead.
اعتقدت (ربما بسذاجة) أن خطة خدمة تطبيقات Linux كانت كلها 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 المستضاف ذاتيًا بشكل افتراضي. لن تعمل في خدمة التطبيق للأسباب الموضحة في هذا الموضوع.

بينما لا يمكن استضافتها في خدمة التطبيق ، دعنا نقول إننا نستضيف خدمة grpc على aks ، هل هناك أي مشكلة في الاتصال بـ grpc من خدمة التطبيق؟ هل سيعمل عميل grpc على الأقل على خدمة التطبيق؟

بينما لا يمكن استضافتها في خدمة التطبيق ، دعنا نقول إننا نستضيف خدمة grpc على aks ، هل هناك أي مشكلة في الاتصال بـ grpc من خدمة التطبيق؟ هل سيعمل عميل grpc على الأقل على خدمة التطبيق؟

نعم ، يجب أن يعمل العملاء. القيد على الطلبات الواردة فقط ، وليس الصادرة.

ربما يكون سؤالًا غبيًا ، ولكن لماذا يعمل إذا كنت أقوم بتشغيل خدمة gRPC في Debug باستخدام IIS Express؟ على سبيل المثال ، لدي تطبيق ويب (Razor Pages ، .net core 3.1) يقوم بإجراء مكالمات إلى خدمة gRPC [تمت ترقيته من تطبيق mvc لإطار العمل ويتحدث إلى خدمة wcf ، إذا كان هناك من يهتم]. إذا قمت بتصحيحها على حد سواء على محطة العمل الخاصة بي ، مع خدمة gRPC في IIS Express ، يمكن لتطبيق الويب التحدث إلى الخدمة على ما يرام. نظرًا لسلوك الوكيلanurse الموضح أعلاه ، عند استضافة الخدمة في IIS ، أحصل على استثناء مفاده أن gRPC يتطلب HTTP / 2. هل IIS Express وكيل لـ Kestrel بشكل مختلف عن IIS؟

أيضًا ، ربما لا يكون المكان المناسب لذلك ولكني أود أن أطلب بكل تواضع أن يتم إعطاء الصفحة أدناه شرحًا صغيرًا لسلوك وكيل IIS / App Service. لقد قضيت (ربما من الحماقة) يومًا كاملاً في محاولة التفوق على IIS بذكاء لأنني اعتقدت أنه يمكنني إجباره على الوكيل في HTTP / 2 إذا كان التطبيق يعمل خارج العملية في Kestrel https://docs.microsoft.com/en- us / aspnet / core / grpc / aspnetcore؟ view = aspnetcore-3.1 & tabs = visual-studio # Integration -with-aspnet-core-apis

لا ينبغي أن يعمل IIS Express لجميع الأسباب نفسها التي لا يعمل بها IIS.

Tratcher آه نعم أنت على صواب. كنت أقوم بتشغيل خدمة gRPC على أنها مستضافة ذاتيًا ، وليس IIS Express. شكرا!

هل لدى أي شخص برنامج تعليمي حول كيفية الحصول على هذا العمل في AKS؟ (نقاط المكافأة للتصحيح باستخدام vs code in aks محليًا دون الحاجة إلى إعادة بناء الحاويات بحيث يكون لدينا المكدس بالكامل مع .net core dev ، من خلال النشر إلى azure باستخدام azure devops و aks).

الأهم من ذلك ، ما الذي تستخدمه في AKS لتوكيل حركة مرور الويب إلى قرون AKS دون الحاجة إلى استخدام ngix في الجراب نفسه (على سبيل المثال ، موازن التحميل الأزرق أو شيء من هذا القبيل؟)

بينما لا يمكن استضافتها في خدمة التطبيق ، دعنا نقول إننا نستضيف خدمة grpc على aks ، هل هناك أي مشكلة في الاتصال بـ grpc من خدمة التطبيق؟ هل سيعمل عميل grpc على الأقل على خدمة التطبيق؟

نعم ، يجب أن يعمل العملاء. القيد على الطلبات الواردة فقط ، وليس الصادرة.

لسوء الحظ ، لا يبدو أن هذا هو الحال مع تطبيق الويب المستند إلى .Net Core 3.1 الذي يستدعي خدمة grpc (في هذه الحالة يعمل كود Pyhton على جهاز افتراضي) عند استضافته على تطبيقات الويب Azure - انقضت المهلة. عند تشغيل نفس الرمز بالضبط من المضيف المحلي ، تمر المكالمة (نفس الخدمة VM).

lyulyok هل يمكنك جمع التشخيص وفتح إصدار منفصل؟ لا توجد مشاكل معروفة مع العميل هنا.

هل لدى أي شخص برنامج تعليمي حول كيفية الحصول على هذا العمل في AKS؟

الرجاء فتح عدد جديد لمناقشة هذا أو طرح سؤال على Stack Overflow . دعنا نحافظ على هذا الموضوع في الموضوع ، لا سيما أن هناك العديد من الأشخاص المهتمين بحالة gRPC على IIS و HTTP.sys وكل تعليق يرسل صوتًا لكل شخص موجود عليه. سأقوم بإخفاء التعليقات الخارجة عن الموضوع ، فلا تتردد في نشر مشكلات جديدة إذا كانت لديك أسئلة أخرى.

نعم ، لقد قمت بالفعل ببناء خدمة تعمل كخدمة مستضافة عامة. لقد قمت بنقله إلى قالب asp net core 3 الجديد وتشغيله على kestrel المستضاف ذاتيًا ، لكنني أتطلع حاليًا إلى استضافته خلف iis ونأمل أن يتم نشره كخدمة تطبيق في Azure. لا يمكنني تشغيل (iis) السابق.

يتوفر الآن الدعم التجريبي لـ gRPC-Web في .NET. يعمل gRPC-Web مع HTTP / 1.1 و HTTP / 2 ، ويتم تشغيله في IIS و Azure App Service.

نحن مستمرون في العمل على تشغيل HTTP / 2 gRPC في Azure App Service ، لكن gRPC-Web هو شيء يمكنك استخدامه اليوم . عند اكتمال العمل لدعم HTTP / 2 في IIS و Azure App Service ، ستكون عملية بسيطة لتبديل تطبيق .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 يبدو حاليًا مشروعًا تجريبيًا وليس منتجًا ملتزمًا.

  • هل أحتاج إلى gRpc-Web للنشر في IIS؟ وإلا ، أليس هذا ممكنًا على الإطلاق؟
  • هل لديك الوقت المقدر للوصول حول متى سيكون من الممكن النشر إلى IIS بدون gRpc-Web؟
  • هل لديك الوقت المقدر للوصول عندما يتم دعم gRpc-Web رسميًا بواسطة Microsoft؟

هل أحتاج إلى gRpc-Web للنشر في IIS؟ وإلا ، أليس هذا ممكنًا على الإطلاق؟

حاليًا لا يعمل gRPC عبر HTTP / 2 في IIS. gRPC-Web يعمل.

هل لديك الوقت المقدر للوصول حول متى سيكون من الممكن النشر إلى IIS بدون gRpc-Web؟

لا. يستغرق إجراء التغييرات على Windows وإصدارها للجمهور وقتًا.

هل لديك الوقت المقدر للوصول عندما يتم دعم gRpc-Web رسميًا بواسطة Microsoft؟

ليس الان.

لمعلوماتك
لدي تطبيق (ASP.Net Core 3.2.0-Preview1) قمت فيه بتغيير REST API DAL لـ gRPC-Web DAL. لقد اتبعت إرشادات منشور مدونة ستيف ساندرسون. يمكن تشغيل الحل الخاص بي على أنه إما CSB أو SSB وقد نجحت في استخدام gRPC-Web في كلا التكوينين (كان علي التقدم إلى إصدار أحدث من حزم gRPC. * nuget).

لقد أجريت تحديثات إضافية عن طريق الخطأ من الإصدارات الليلية وحالياً حزم gRPC الخاصة بي كلها في الإصدار 2.28.0-dev202003020801. أقول بشكل خاطئ لأن عمليتي نشر الحل العملي تفشل كل منهما.

SSB - أبلغ العميل عن خطأ في "مكون عرض الاستثناء غير المعالج: تعذر تحميل الملف أو التجميع 'System.Text.Json ، الإصدار = 4.0.1.1 ، الثقافة = محايد ، PublicKeyToken = cc7b13ffcd2ddd51'. لا يمكن للنظام العثور على الملف المحدد. "
بمجرد إضافة حزمة nuget صريحة من System.Text.Json (4.7.1) إلى مشروع خادم الويب الخاص بي ، يختفي هذا الخطأ ويعمل كل شيء.
[تحرير] العودة إلى الإصدارات 2.27.0 / 2.27.0-Pre1 لجميع حزم gRPC. * من موجز NuGet يحل هذه المشكلة.

CSB - في نفس النقطة في العميل عند تلقي أول استجابة gRPC-Web ، أتلقى خطأ "WASM: Grpc.Core.RpcException: الحالة (StatusCode = Internal ، Detail =" استجابة gRPC سيئة. تم إرجاع بروتوكول الاستجابة إلى HTTP /1.1. ")". ليس لدي حل بديل لهذا ، لكنه ليس حرجًا لأننا نقوم بشحن SSB حتى يتم إصدار CSB.
[تحرير] العودة إلى الإصدارات 2.27.0 / 2.27.0-Pre1 لجميع حزم gRPC. * من موجز NuGet يحل هذه المشكلة.

آسف على الإسهاب ، لكن أخيرًا سؤالان:

  • هل من الممكن استخدام جهاز تسلسلي / مزيل تسلسل json آخر في gRPC / gRPC-Web؟
  • هل ستتم "محاذاة" حزم gRPC / gRPC-Web مع ASP.Net Core 3.2-Preview 2 أم أن الوصول إلى الإصدارات الليلية سيكون مطلوبًا؟

مرحبًا JamesNK ،
لقد انتقل عميلي إلى gRpcWeb ، لكننا وجدنا قيودًا مهمة (لم أجد منها أي وثائق): الحد الأقصى لحجم الرسالة هو 3067 حرفًا.
إذا تم تحويل هذا السطر من خدمة العميل المعتادة من خدمة gRpc الأساسية ، إلى gRpc-Web ، (لأن السلسلة تتكون من 3068 حرفًا ، 1 فوق الحد الأقصى):

// تكوين قناة لاستخدام gRPC-Web
var handler = new GrpcWebHandler (GrpcWebMode.GrpcWebText، new HttpClientHandler ()) ؛
// يجب أن يتطابق رقم المنفذ (5001) مع منفذ خادم gRPC.
باستخدام var channel = GrpcChannel.ForAddress (" https: // localhost : 5001" ، GrpcChannelOptions الجديدة
{
HttpClient = HttpClient جديد (معالج)
}) ؛
var client = جديد Greeter.GreeterClient (قناة) ؛
var reply = wait client.SayHelloAsync (جديد HelloRequest {Name = new string ('A'، 3068 )}) ؛
Console.WriteLine ("تحية:" + reply.Message) ؛
Console.WriteLine ("اضغط على أي مفتاح للخروج ...") ؛
Console.ReadKey () ،

أرفق حل repro يحتوي على العميل والخادم.
GrpcWeb.zip

كان المشروع المكافئ مع gRpc العادي قادرًا على التعامل مع رسائل بحجم 20 كيلو بايت دون أي مشاكل.
هل يمكنك إعلامي إذا كان بإمكاني تهيئة شيء ما لإزالة هذا الحد؟

@ curia-damiano هل يمكنك تقديم مشكلة جديدة مع هذا؟ دعنا نحتفظ بهذا الخيط لمناقشة الميزة المحددة لدعم gRPC ( بدون gRPC-Web) في IIS / Azure App Service. تم طرح gRPC-Web في وقت سابق على هذا الموضوع لأنه بديل جيد ، لكني أرغب في الحفاظ على تركيز هذا الموضوع على الهدف الأساسي لدعم gRPC الأصلي.

MarkStega هل يمكنك أيضًا تقديم مشكلة جديدة بسؤالك؟ دعنا نحاول تجنب زيادة تحميل هذا الموضوع بالعديد من الموضوعات المحتملة (حتى لو كانت ذات صلة). هذه المشكلة هي تعقب دعم gRPC الأصلي على IIS / Azure App Service

هل يمكننا الحصول على الوقت المقدر للوصول عندما تكون gRPC متاحة في خدمة تطبيقات Azure من فضلك؟

ليس لدينا أي تحديثات لـ ETA. سنقوم بتحديث هذا الموضوع عندما يكون لدينا و.م.و. يتطلب هذا تغييرات في Windows ونحن نعمل مع هذا الفريق لمحاولة وضعها في مكانها في أقرب وقت ممكن ، ولكن جدولهم الزمني ليس تحت سيطرتنا المباشرة.

هل يمكننا إنشاء خدمة gRPC التي يتم تجميعها كحاوية وتشغيلها في تطبيق ويب للحاويات في Azure؟

تضمين التغريدة لا يزال خلف IIS كوكيل لا يمكنه التعامل مع وظائف HTTP / 2 المطلوبة.

هناك 3 طرق للقيام بذلك الآن:

  1. فضح عنوان IP عام واستخدم VM.
  2. استخدم Kubernetes مع Azure Application Gateway Ingress (والذي تفشل فيه الإرشادات لأن البرنامج النصي للدفة قديم وبالتالي لا يمكن استخدامه في الوقت الحالي) أو استخدم nginx ingress (تفقد جدار الحماية وتعقيدات DoS)
  3. استخدم خدمات Azure Container واعرضها لعنوان IP عام أو استخدم nginx لعكس الوكيل أو استخدم Azure Application Gateway لعكس الوكيل.

لن يعمل أي شيء آخر.

هههههههههههههههه

استخدم خدمات Azure Container واعرضها لعنوان IP عام أو استخدم nginx لعكس الوكيل أو استخدم Azure Application Gateway لعكس الوكيل.

لن تعمل Azure Application Gateway حاليًا. لها نفس القيد

أعتقد أنه يمكننا تشغيله على gpogle cloud باستخدام كود .net الخاص بنا؟

يوم الأربعاء ، 1 أبريل 2020 ، الساعة 7:26 صباحًا سربه شيرهاتي ، [email protected]
كتب:

هههههههههههههههههههههههههههههههههههههههههه _

استخدم خدمات 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/ABCSC7LVZJTQ2QPRHVB5G5TRKJGYLANCNFSM4HDHMSDA
.

shirhatti ، حسنًا ، هذا يزداد سوءًا. جعلت Microsoft ذلك بشكل فعال بحيث لا يمكن تشغيل .NET مع gRPC على Microsoft Azure. إذا لم يكن الأمر محزنًا للغاية فسيكون الأمر مضحكًا كما الجحيم.

إذن هذه القائمة المحدثة:

  1. كشف IP العام واستخدام VM (ضع haproxy أو nginx أو أي شيء على الجهاز الظاهري لعكس الوكيل)
  2. استخدم Kubernetes (AKS) مع إدخال nginx.

لا أعتقد أن ACS ستعمل لأنها لا تزال تضع IIS أمامها إذا كانت الذاكرة تعمل.

وربما لا يعمل # 2 إما لأن موازن التحميل قد يكون IIS على Windows أيضًا ... هل قام أي شخص بالفعل بعمل هذا في أي مكان في Azure؟

أعتقد أن بطاقة github هذه تحدد ما كنت أقوله منذ شهور عن فريق .NET وما الذي يحدث.

جعلت Microsoft ذلك بشكل فعال بحيث لا يمكن تشغيل .NET مع gRPC على Microsoft Azure. إذا لم يكن الأمر محزنًا للغاية فسيكون الأمر مضحكًا كما الجحيم.

لا يوجد هنا شيء خاص بـ .NET ، فالقيود موجودة في البنية الأساسية لـ Windows و Azure المتعلقة بـ HTTP / 2. ستواجه نفس المشكلة مع حزم الويب الأخرى في Azure. يعمل Windows و Azure على إلغاء حظرنا ولكنه يتطلب تغييرات في المكونات الأساسية التي تستغرق وقتًا طويلاً لإعادة النشر.

كل هذا مرتبط بشكل مباشر بـ .net. تقول حرفياً على مواقع الويب اللازوردية و. net أن .net هي لغة اللازوردية.

لكن لا يمكنك استخدام هذه اللغة مع Azure ولكن يمكنك استخدامها على AWS و Google cloud بسهولة.

إنه أمر محرج كما هو الحال مع العديد من عمليات الإخفاق الهائلة من فريق .net مؤخرًا ، ومع ذلك فإن غطرستهم عالية في كل الأوقات بدون سبب.

ولم يقدموا لنا حتى حلولاً من أي نوع بخلاف استخدام ويب gRPC الذي يعد نقطة انطلاق وليس منتجًا حقيقيًا.

نعم ولكن يمكننا تشغيل كل مكدس .net على google cloud ، يدعم .net
gRPC بخير. لذلك لا أمانع في العمل على GPC حتى يتمكنوا من إصلاح ذلك
على أزور.
أقوم بتطوير خدمات التطبيقات أو التطبيقات بدون خادم ، ولست مهتمًا بأي منها
حلول الحاويات لأنها مكلفة للغاية لعمليات النشر واسعة النطاق
لدي.

يوم الأربعاء 1 أبريل 2020 الساعة 9:57 ص
كتب:

كل هذا مرتبط بشكل مباشر بـ .net. تقول حرفيا على اللازوردية و
مواقع الويب .net التي .net هي لغة اللازوردية.

لكن لا يمكنك استخدام هذه اللغة مع Azure ولكن يمكنك استخدامها على AWS و
جوجل كلاود بسهولة.

إنه أمر محرج كما هو الحال مع العديد من الأخطاء الفادحة من فريق .net
في الآونة الأخيرة ، ومع ذلك فإن غطرستهم هي في كل الأوقات عالية دون سبب.

ولم يقدموا لنا حتى حلولاً من أي نوع بخلاف الاستخدام
gRPC web وهو عبارة عن نقطة بيع وليس منتجًا حقيقيًا.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-606927717 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABCSC7MRPFQBH52XDHUNP63RKJYMVANCNFSM4HDHMSDA
.

أولاً ، يجب أن تشعر Microsoft بالرعب مما قلته للتو.

ثانيًا ، لقد قمت للتو بتحويل عناصر الويب الخاصة بنا إلى kubernetes اللازوردية باستخدام عقد افتراضية ويكلفنا ذلك حوالي نصف تكلفة خدمات التطبيقات التي كانت تكلفنا ولديها ضعف الأداء.

Aks عبارة عن فوضى من الأشياء التي لا تعمل بشكل صحيح وتوثيق قديم ولكن بمجرد حصولك على هويات مُدارة ، و IP عام في مكانه ، يكون الباقي مباشرًا.

نعم ، لكن هذا تغيير كبير حقًا لمايكروسوفت! وأنا أحب
بساطة gRPC على الرغم من أنني قد أتحول إلى http Rx. لم أستطع الحصول على
مقبس الويب إلى حل للعمل حيث يبدو أن به مشكلات SSL / TLS.
يبدو أنه يمكنني الحصول على kubs azure بنفس تكلفة خدمات تطبيق S1 الخاصة بي ،
يجب أن تتحقق من الأداء.

يوم الأربعاء 1 أبريل 2020 الساعة 10:13 صباحًا
كتب:

أولاً ، يجب أن تشعر Microsoft بالرعب مما قلته للتو.

ثانيًا ، لقد قمت للتو بتحويل مواد الويب الخاصة بنا إلى استخدام kubernetes الأزرق السماوي
العقد الافتراضية ويكلفنا حوالي نصف تكلفة خدمات التطبيقات
لنا ولها ضعف الأداء.

Aks عبارة عن فوضى من الأشياء التي لا تعمل بشكل صحيح وقديمة
الوثائق ولكن بمجرد حصولك على الهويات المدارة ، و IP العام في مكانه
الباقي بشكل مستقيم للأمام.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-606933338 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABCSC7O3N4XVCWM5MGCTS33RKJ2I7ANCNFSM4HDHMSDA
.

كل هذا مرتبط بشكل مباشر بـ .net. تقول حرفياً على مواقع الويب اللازوردية و. net أن .net هي لغة اللازوردية.

من الواضح أن هذا ليس صحيحًا. لا تتم كتابة حزم TCP و HTTP الأساسية باستخدام .NET. تعمل Microsoft على تكييف أساسها مع gRPC. هذا تسليم معقد له تأثيرات إضافية لكل ما يتم تشغيله على خوادم Windows ، بما في ذلك Azure نفسه.

إنه أمر محرج كما هو الحال مع العديد من عمليات الإخفاق الهائلة من فريق .net مؤخرًا ، ومع ذلك فإن غطرستهم عالية في كل الأوقات بدون سبب.

هذا الأسلوب من الأنين الطفولي غير المنتج وغير المنطقي غير ضروري على الإطلاق. هذا ليس له علاقة بفريق .NET. لقد تم نقل معظم gRPC محليًا حتى نتمكن من العمل على PoCs واستخدام الحلول البديلة عند الضرورة ، ومثل البالغين الناضجين ، سننتظر حتى تصبح المنصة الأساسية جاهزة لتسليم الأجزاء النهائية.

oising

NET هي لغة Azure. تقوم Microsoft بتسويقها على هذا النحو. يتعذر على Azure فهم .NET gRPC. إنه صحيح 100٪. إنه فشل كامل أنه لم يكن متاحًا عند الإصدار بل والأسوأ من ذلك بعد عام. لا يهم أن الحزم لا يكتبها فريق .NET داخل Microsoft . مايكروسوفت هي مايكروسوفت . لا يهمني إقطاعياتهم الصغيرة وحدودهم المصطنعة وأولوياتهم غير المنحازة. أنا أهتم بأفضل المنتجات الممكنة التي تعمل بالفعل. لا يهمني أن Microsoft تدعي أنه نظرًا لأن .NET مفتوح المصدر ، فإنه بطريقة ما لم يعد منتجًا مدفوعًا بعد الآن. إنه منتج مدفوع. أنا فقط أدفع مقابل ذلك بشكل غير مباشر باستخدام Azure و Office و Windows.

وكلا ، لن ننتظر. سننتقل إلى مزود سحابي آخر حيث يعمل. وهو ما تدفعه مايكروسوفت بلا نهاية. الجحيم كان لدي شخص دعم من Microsoft ، قل وأنا أقتبس "إذا كنت لا تحب [حقيقة أننا كسرنا هذا في وقت التشغيل حسب التصميم] يمكنك استخدام منتج شخص آخر" لحوالي 100 عميل. نعم ، أعرف جيدًا أن 8 منهم فعلوا بالضبط ما اقترحوه حتى الآن و 30-40 آخرون يحققون في القيام بذلك. تقدر الإيرادات المفقودة للتصلب المتعدد من وكيل الدعم هذا بحوالي 2.8 مليون دولار أمريكي وهي في ازدياد.

نعم ، هذا بالضبط ما سنفعله جميعًا. شكرا على النصيحة مايكروسوفت. سنترك Azure ، وسنترك NET. إذا لم تفلح القيادة في حل مشاكلها قريبًا.

ما يجب أن يقلقوا بشأنه هو عندما يتوقف الناس مثلي عن الشكوى من هذه الإخفاقات العامة الهائلة حيث لا يتحملون المسؤولية عنها ، وبدلاً من ذلك لا يسمعون شيئًا ولا يهتم الجميع. لقد حدث ذلك منذ حوالي عام عندما مرت نماذج Xamarin لمدة 18 أسبوعًا دون أن تكون قادرة على البناء في متجر Apple ومتجر Android ومتجر Windows بنفس بنية Xamarin Forms و Xamarin بشكل عام. لقد نشرت ، واعترفوا بذلك ، وبعد 18 أسبوعًا ، تابع شخص واحد فقط تقرير الخطأ على الرغم من كونه استراحة كاملة ، وليس مجرد حالة طرفية. لماذا ا؟ لا أحد يهتم بأشكال Xamarin وغادر وبدأ في استخدام أدوات غير تابعة لـ Microsoft وفقدت Microsoft سطح المكتب والهاتف الخلوي. (وتواصل تجربة نفس النهج الفاشل لاستعادته حتى مع Neo و Duo) في الوقت الحالي لا يزال الناس يعتقدون أن لديهم صوتًا في .NET وأن شكاواهم لن تذهب آذانًا صماء وسيتم إصلاح هذه الأشياء. تعمل قيادة .NET بجد لتوضيح أن الأمر ليس كذلك وأن النتيجة ستكون مطابقة لنماذج Xamarin.

قطعة رؤوس المقطورة شيء نجد أنفسنا في حاجة إليه بشكل أكثر إلحاحًا مما كنا نعتقد في Stack Overflow أيضًا. هل يمكننا المساعدة في تحديد الأولويات هنا؟

حالة الاستخدام

نقوم بعمل التوقيتات عبر رؤوس الخادم لالتقاطها في سجلات HTTP الخاصة بنا (في HAProxy). لدينا عدة رؤوس مثل X-Sql-DurationMs ، X-Sql-Count ، X-Reds-DurationMs ، وما إلى ذلك حتى نتمكن من التقاطها وتسجيلها ، وتجميع المقاييس عليها. إذا كان هناك المزيد من التفاصيل يساعد ، فهناك قسم في منشور المدونة هذا . نجح هذا بشكل جيد في ASP.NET MVC 5 (إطار عمل كامل) لأن الاستجابة بأكملها تم تخزينها مؤقتًا. نظرًا لأننا نجري القليل جدًا من الاستعلام في المشاهدات ، فقد كانت إستراتيجية توقيت دقيقة تصل إلى 99٪ عملت بشكل جيد بشكل عام.

نحن الآن نعمل على .NET Core ويتم بث كل شيء. تكمن المشكلة في ذلك في إرسال رؤوس التوقيت قبل اكتمالها ، بسبب نقص التخزين المؤقت. إنها مقايضة قاسية. سيكون هذا قابلاً للإصلاح بسرعة إذا تمكنا من إرسال هذه التوقيتات والتقاطها كرؤوس مقطورة. ولكن يبدو أننا في أداة حظر IIS هنا ونحن تحت رحمة ذلك قيد الترقية (أو نتخلى عن IIS) لتشغيل هذه الوظيفة.

أنا شخصياً لدي استخدامات أخرى ، مثل MiniProfiler الذي يرسل رأس Server-Timing (لقد كان جاهزًا وينتظر حوالي 3 سنوات الآن ).

كيف يمكننا المساعدة في الأولوية في هذا؟ هل هناك أي فرصة لحالات استخدام إضافية تساعد في تغييره؟

شكرا نيك كرافر. هذا العمل له أولوية عالية بالفعل وهو قيد التقدم ، ولكن نشره في خدمات مثل AppService معقد وسيستغرق بعض الوقت.

هل هناك احتمال أن يتم دعمه في IIS قريبًا ، بغض النظر عن طرح Azure؟ - أنا في الحقيقة بحاجة فقط إلى عميل في IIS - إذا كان ذلك مهمًا على الإطلاق. فهل يمكن أن يكون IIS عميل http2؟

يجب أن أوافق ، على أنه أمر مقلق ، أنه يبدو من المستحيل لموظفي Microsoft ، أن يأخذوا أرجلهم (أو الهاتف في هذا الوقت) وينتقلوا إلى هذا الفريق الآخر. وأزعجهم كثيرًا لدرجة أنهم نشروا إصلاحًا عاجلاً في يوم واحد.
إذا لم يقم فريق asp / .net بالضغط من أجل grpc ، فستكون فترة الانتظار هذه جيدة. ولكن نظرًا لأنك تقوم بتسويق منتج لا يمكن استخدامه في الإنتاج ، فقد حان الوقت للأسف لاتخاذ تدابير يائسة وكسر الصفوف.

إذا كنت تهتم ستحقق ذلك.

تحرير: أعرف أن كلمة "يوم" مبالغ فيها لكنها كانت سنة!

هل هناك أي مستندات على الإطلاق تشرح كيفية نشر gRPC على Azure؟ على الأقل باستخدام AKS؟ سيكون من الجيد الحصول على شيء.

هل هناك أي مستندات على الإطلاق تشرح كيفية نشر gRPC على Azure؟ على الأقل باستخدام AKS؟ سيكون من الجيد الحصول على شيء.

lumogox لقد قمت بإنشاء دليل خطوة بخطوة لنشر gRPC على Azure.
https://github.com/rupeshtech/k8s-grpc-dotntecore

rupeshtech لقد ألقيت نظرة بالفعل على دليلك ، ومع ذلك ، فإنه لا يعمل إذا كنت تريد إظهار رسالة في مسار الجذر في المنفذ 80.

أشياء رائعة ولكني أريد نشرها في خدمات التطبيقات وما زلنا لا نملك الوقت المقدر للوصول.
ادعى أحد اللاعبين الآخرين أن AKS أرخص من التطبيق
الخدمات ، أجد صعوبة في تصديق ذلك؟
على أي حال ، أريد فقط استخدام خدمات التطبيقات أو البنية التحتية بدون خادم.

يوم الثلاثاء 12 مايو 2020 الساعة 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/ABCSC7MUWWWYCGMEK2FH663RRD5YPANCNFSM4HDHMSDA
.

AKS: b12 ، 2 عقدة الكتلة هي 176 دولارًا شهريًا وتحصل على أداء مثل p3.

ستحتاج إلى ما يلي لإنجاح هذا الأمر:

  1. دخول nginx كوكيل عكسي.
  2. التطبيق الأساسي صافي
  3. قوالب النشر لتطبيق .net الأساسي الخاص بك
  4. قوالب الخدمة لعمليات النشر تلك
  5. قالب الإدخال الذي يقوم بتعيين إدخالات نظام أسماء النطاقات الخاص بك
  6. سيرت بوت لـ k8s أو الشهادة الخاصة بك لتعيينها إلى الإدخال.
  7. قم بإيقاف تشغيل SSL فقط في تطبيق .net الخاص بك ، وسوف يتم تثبيته مع RP وتشغيل دعم الوكيل في .net core.
  8. IP العام
  9. سجل حاوية Azure

إنها عملية مكونة من 30 جزءًا لتكوين هذا في Azure في الوقت الحالي ولا يمكن فعل أي شيء تقريبًا عبر بوابة واجهة المستخدم الرسومية. إنهم يفتقدون إلى سجلات ربط الحاوية ، وتكوين موفري الدخول (Azure Application Gateway أو nginx أو haproxy وما إلى ذلك ، لديهم أي واجهة مستخدم لإعدادها. لا شيء من عناصر الخدمة الرئيسية مع الموارد الأخرى ، ولا عناصر الهوية المُدارة مؤتمتة بشكل صحيح أيضًا (وأنت بحاجة لكليهما لأسباب لا يمكن فهمها).

إذا كنت تقوم بعمل شهادة wildcard ، فستحتاج أيضًا إلى الوصول إلى DNS الخاص بك من خلال أحد مزودي DNS المدعومين لخدمة certbot k8s.

إليك البرنامج النصي الخاص بنا لإعداد بيئة قد تساعدك على البدء:

تكوين Azure

  1. قم بإنشاء AKS
  2. az aks install-cli (إذا لم تكن قد قمت بذلك بالفعل)
  3. az aks الحصول على بيانات الاعتماد - مجموعة الموارد RGL- \ - الاسم XX-AKS- \
  4. إنشاء شبكة ip public-ip - مجموعة الموارد MC_RGL- \ _XX-AKS- \ _eastus - الاسم PIP-AKS- \ --sku القياسي - ثابت طريقة التخصيص - الاستعلام publicIp.ipAddress -o tsv
  5. خريطة api و www و admin إلى IP العام في DNS (مثل beta.XX.com)
  6. إنشاء هوية az -g RGL- \ -N XX-MI-AKS- \ -o json (سجل ClientId والمعرّف الرئيسي والمعرّف والاسم)
  7. تعيين الدور من قبل الألف إلى الياء إنشاء - دور القارئ - تعيين \ --النطاق / الاشتراكات / \ / Resourcegroups / RGL- \
  8. الحصول على معلومات الخدمة الأساسية من تطبيقات دليل Azure النشط: XX-AKS- \ SP-xxxx (اسم التسجيل ومعرف العميل)
  9. قم بإنشاء سر عميل بدون انتهاء الصلاحية وقم بتسجيله
  10. تعيين الدور az - دور "مشغل هوية مُدار" - تعيين \ --مجال "\ "
  11. احصل على معرف منطقة نظام أسماء النطاقات: قائمة منطقة شبكة نظام أسماء النطاقات من الألف إلى الياء - الاستعلام "[]. {المعرّف: المعرّف ، الاسم: الاسم}"
  12. إنشاء مهمة دور من الألف إلى الياء إنشاء - تعيين \ - دور المساهم - النطاق \
  13. إنشاء مهمة دور من الألف إلى الياء إنشاء - تعيين \ - دور المساهم - النطاق \
  14. تحديث az aks -n XX-AKS- \ -g RGL- \ - تعلق- acr clcr \
  15. إضافة هوية مُدارة (XX-MI-AKS- \ ) إلى Key Vault

Kubernetes فلنقم بتشفير (إن لم يكن الإنتاج)

  1. kubectl إنشاء مساحة اسم دخول أساسية
  2. إضافة helm repo مستقرًا https://kubernetes-charts.storage.googleapis.com/
  3. helm install nginx-ingress stabil / 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 - دخول مساحة الأسماء - الحصول على الخدمات الأساسية - واسع - w nginx-ingress-controller
  5. تطبيق kubectl --validate = false -f https://github.com/jetstack/cert-manager/releases/download/v0.14.3/cert-manager.yaml
  6. تحديث issuer.yaml بالاشتراك و ClientId لمبدأ الخدمة
  7. تحديث الشهادة. yaml إلى عنوان نظام أسماء النطاقات
  8. تحديث ingress.yaml بمعلومات المجال وما إلى ذلك.
  9. إنشاء إصدار Base64 من السر الرئيسي للخدمة: echo \ | opensl base64
  10. تحديث dazuredns.yaml مع السر

أو بوابة تطبيق Kubernetes Azure

  1. لا يعمل. فوضى كاملة

أكمل تكوين Kubernetes

  1. تطبيق kubectl -f https://raw.githubusercontent.com/Azure/aad-pod-identity/master/deploy/infra/deployment-rbac.yaml
  2. قم بتحديث النشر API باستخدام مفتاح التسجيل و keyvault والبيئة والأدوات
  3. تحديث التسجيل في موقع النشر و النشر المسؤول
  4. تحديث القيم في الهوية-ملزم .yaml (ClientId هو أيضًا من الهوية المدارة أعلاه)
  5. kubectl إنشاء مساحة اسم XX
  6. تعيين سياق kubectl - الحالي - مساحة الاسم = XX
  7. kubectl تطبيق -k ./ \
  8. التحقق من الشهادة متاح: تصف kubectl الشهادة XX-tls-secret

نعم ، هذا صعب حقًا. ولا توجد طريقة أسهل في k8s. خيارك الآخر الوحيد هو جهاز افتراضي به عنوان IP عام واستخدام RP أمام تطبيقك. يمكنك استخدام Linux VM وتشغيل عامل إرساء عليه ، وتثبيت HAproxy وتطبيقك في حاوية عامل إرساء مع ملف إنشاء عامل إرساء واحد بسهولة تامة.

وإلا فإنك ستفشل حتى تبدأ في طرح النواة من Windows 2004 (ربيع 2020) إلى Azure. (بافتراض أنها وصلت هناك ولم تتأخر حتى نوفمبر)

رائع يا صديقي ، هذا أمر لا يصدق ، شكرًا لك ولكن لأنني أيضًا معجب جدًا به
Azure Dev Ops مع نهج NoOps أشعر حقًا أن AKS ليست موجودة
الدوري الخاص بي.
خاصة عندما يمكنني على الأرجح تشغيل خدمة تطبيقات لائقة بسعر أقل قليلاً
من ذلك. أو قم بتبديلها إلى وظيفة Azure. لم أستطع الحصول على مقبس الويب الخاص بي
حل للنشر في Azure.
أنا أيضًا معجب كبير بالملحقات التفاعلية وهناك بعض Rx اللطيف
أدوات هناك مثل هذا
https://github.com/lucassklp/Rx.Http
لست متأكدا من قابلية هذا على الرغم من التوسع

يوم الثلاثاء ، 12 مايو ، 2020 الساعة 10:09 مساءً ، James Hancock [email protected]
كتب:

AKS: b12 ، 2 عقدة الكتلة هي 176 دولارًا شهريًا وتحصل على أداء مثل p3.

ستحتاج إلى ما يلي لإنجاح هذا الأمر:

  1. دخول nginx كوكيل عكسي.
  2. التطبيق الأساسي صافي
  3. قوالب النشر لتطبيق .net الأساسي الخاص بك
  4. قوالب الخدمة لعمليات النشر تلك
  5. قالب الإدخال الذي يقوم بتعيين إدخالات نظام أسماء النطاقات الخاص بك
  6. سيرت بوت لـ k8s أو الشهادة الخاصة بك لتعيينها إلى الإدخال.
  7. قم بإيقاف تشغيل SSL فقط في تطبيق .net الخاص بك ، وسوف يتم تثبيته مع RP و
    قم بتشغيل دعم الوكيل في. net core.
  8. IP العام
  9. سجل حاوية Azure

إنها عملية مكونة من 30 جزءًا لتكوين هذا في Azure الآن وافتراضيًا
لا يمكن عمل أي من ذلك عبر بوابة واجهة المستخدم الرسومية. إنهم يفتقدون الارتباط
سجلات الحاويات ، وتكوين موفري الدخول (تطبيق Azure
بوابة ولا nginx ولا haproxy وما إلى ذلك لديك أي واجهة مستخدم لإعداده. لا شيء من
خدمة الأشياء الرئيسية مع موارد أخرى ، ولا عناصر الهوية المدارة
مؤتمتة بشكل صحيح أيضًا (وتحتاج إلى كليهما لأسباب لا يمكن فهمها).

إذا كنت تقوم بعمل شهادة wildcard ، فستحتاج أيضًا إلى الوصول إلى DNS الخاص بك
من خلال أحد مزودي نظام أسماء النطاقات المدعومين من certbot k8s.

إليك البرنامج النصي الخاص بنا لإعداد بيئة قد تساعدك في الحصول عليها
بدأت:
تكوين Azure

  1. قم بإنشاء AKS
  2. az aks install-cli (إذا لم تكن قد قمت بذلك بالفعل)
  3. az aks الحصول على بيانات الاعتماد - مجموعة الموارد RGL- - الاسم XX-AKS-
  4. إنشاء شبكة public-ip من az - مجموعة الموارد MC_RGL-_XX-AKS-_eastus
    - الاسم PIP-AKS- - معيار SKU - استعلام طريقة التخصيص الثابت
    publicIp.ipAddress -o tsv
  5. خريطة api و www و admin إلى IP العام في DNS (مثل beta.XX.com)
  6. إنشاء هوية من الألف إلى الياء -g RGL- -n XX-MI-AKS- -o json (سجل ملف
    ClientId ، معرف رئيسي ، معرف واسم)
  7. من الألف إلى الياء تعيين الدور إنشاء - دور القارئ - تعيين - النطاق
    / الاشتراكات // Resourcegroups / RGL-
  8. الحصول على معلومات الخدمة الأساسية من تطبيقات دليل Azure Active:
    XX-AKS-SP-xxxx (اسم السجل ، معرّف العميل)
  9. قم بإنشاء سر عميل بدون انتهاء الصلاحية وقم بتسجيله
  10. إنشاء دور من az - دور "مشغل الهوية المُدار"
    - المرشح - النطاق ""
  11. احصل على معرف منطقة نظام أسماء النطاقات: قائمة منطقة شبكة نظام أسماء النطاقات من الألف إلى الياء - الاستعلام "[]. {المعرّف:
    المعرف والاسم: الاسم} "
  12. تعيين دور من الألف إلى الياء إنشاء - تعيين - دور المساهم - النطاق
  13. تعيين دور من الألف إلى الياء إنشاء - تعيين - دور المساهم - النطاق
  14. az aks update -n XX-AKS- -g RGL- -attach-acr clcr
  15. قم بإضافة هوية مُدارة (XX-MI-AKS-) إلى Key Vault

Kubernetes فلنقم بتشفير (إن لم يكن الإنتاج)

  1. kubectl إنشاء مساحة اسم دخول أساسية
  2. إضافة ريبو هيلم مستقرة
    https://kubernetes-charts.storage.googleapis.com/
  3. helm install nginx-ingress stabil / 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 تحكم دخول
  5. تطبيق kubectl --validate = false -f
    https://github.com/jetstack/cert-manager/releases/download/v0.14.3/cert-manager.yaml
  6. تحديث issuer.yaml بالاشتراك و ClientId لمبدأ الخدمة
  7. تحديث الشهادة. yaml إلى عنوان نظام أسماء النطاقات
  8. تحديث ingress.yaml بمعلومات المجال وما إلى ذلك.
  9. اصنع نسخة Base64 من سر الخدمة الرئيسي: echo | يفتح
    قاعدة 64
  10. تحديث dazuredns.yaml مع السر

أو بوابة تطبيق Kubernetes Azure

  1. لا يعمل. فوضى كاملة

أكمل تكوين Kubernetes

  1. kubectl تطبيق -f
    https://raw.githubusercontent.com/Azure/aad-pod-identity/master/deploy/infra/deployment-rbac.yaml
  2. قم بتحديث النشر API مع التسجيل و keyvault والبيئة و
    مفتاح الأجهزة
  3. تحديث التسجيل في موقع النشر و النشر المسؤول
  4. تحديث القيم في الهوية-ملزم. yaml (ClientId هو أيضًا من ملف
    الهوية المدارة أعلاه)
  5. kubectl إنشاء مساحة اسم XX
  6. تعيين سياق kubectl - الحالي - مساحة الاسم = XX
  7. kubectl تطبيق -k ./
  8. التحقق من الشهادة متاح: تصف kubectl الشهادة XX-tls-secret

نعم ، هذا صعب حقًا. ولا توجد طريقة أسهل في k8s. لك
الخيار الآخر الوحيد هو جهاز افتراضي مع IP عام واستخدام RP أمام
تطبيق. يمكنك استخدام Linux VM وتشغيل عامل إرساء عليه ، وتثبيت HAproxy و
تطبيقك في حاوية عامل إرساء مع ملف إنشاء عامل عامل واحد جميل
بسهولة.

وإلا فإنك ستفشل حتى تبدأ في طرح النواة من
Windows 2004 (ربيع 2020) إلى Azure. (بافتراض أنه جعلها هناك و
لا يتأخر حتى نوفمبر)

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627302354 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABCSC7P74W4DK5RP2BKKI7LRRE365ANCNFSM4HDHMSDA
.

من المحتمل أن تكون Websockets بمثابة تراجع جيد إذا لم تكن ملتزمًا بـ gRPC وكنت تركز على خدمات تطبيقات Azure.

بمجرد تكوين k8s ، يصبح Azure Devops سهلًا. يمكنك إخباره ببناء حاوية عامل إرساء ونشره في مستودع أزور باستخدام علامة build: id ، ثم تقوم بتشغيل kubectl لإخباره بتحديث حاوية النشر بالعلامة الصحيحة لمعرّف الإنشاء وسيتم طرحه بشفافية النسخة الجديدة. الشيء الوحيد الذي قمنا به هو إنشاء أداة تقوم بترحيل EF قبل أن تفعل ذلك حتى لا ينتهي بك الأمر بنسخ متماثلة متعددة من k8 تستدعي نص الترحيل في نفس الوقت.

ماجيك ماتي بفضل الأكوام ، أنا أيضًا مهتم بالتصميم المستند إلى المجال لذلك أنا
أعتقد أنه يمكنني إضافة AKS إلى مستودع الأسلحة الخاص بي الآن ولكني أريد أن ينتقل زبائني إليه
بدون خادم ، لا أفهم سبب عدم رغبة معظم الناس في الانتقال من
حاويات؟

يوم الثلاثاء ، 12 مايو ، 2020 الساعة 11:05 مساءً ، جيمس هانكوك ، [email protected]
كتب:

من المحتمل أن يكون Websockets بمثابة تراجع جيد إذا لم تكن ملتزمًا بـ gRPC
وتركز على خدمات تطبيقات Azure.

بمجرد تكوين k8s ، يصبح Azure Devops سهلًا. تقوله ليبني
حاوية عامل الإرساء ونشرها في المستودع الأزرق السماوي باستخدام البنية: id
علامة ثم لإطلاق سراحك ، قم بتشغيل kubectl لإخباره بتحديث النشر
حاوية بالعلامة الصحيحة لمعرف البناء وستكون كذلك
طرح الإصدار الجديد بشفافية. الشيء الوحيد الذي فعلناه هو إنشاء أداة
يقوم بترحيل EF قبل أن يفعل ذلك حتى لا ينتهي بك الأمر
نسخ متماثلة متعددة من طراز k8 تستدعي نص الترحيل في نفس الوقت.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627329964 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABCSC7MW7NJUS475HICIJTTRRFCQBANCNFSM4HDHMSDA
.

تعتبر حاويات acrigney على نطاق واسع تقنية "بدون خادم". إنها بالتأكيد قابلة للنقاش ، لكن لا يوجد تعريف صارم

acrigney هناك العديد من الأسباب التي تجعل وظائف Azure التي لا تستخدم خوادم خاصة غير مرغوبة:

  1. وظائف Azure عبارة عن كومة تبخير هشة من الفضلات تكون دائمًا متخلفة عن تصحيحات الأمان مع .net core.
  2. وظائف Azure عبارة عن صندوق أسود إلى حد كبير ويصعب تصحيحه في كثير من الحالات.
  3. بمجرد البدء في استخدامه بشكل كامل ، يكون الأمر أكثر تكلفة من الخيارات الأخرى عندما يكون لديك حمولة ثابتة.
  4. لا يوجد شيء لا يمكنك القيام به بخلاف ذلك يمكنك القيام به في وظائف Azure
  5. توفر K8s بيئة عامة معروفة تعمل بنفس الطريقة على جهاز التطوير المحلي الخاص بك كما هو الحال في أي سحابة تريد إنشاءها. عندما تقوم بإنشاء مورد يعمل. لا يهم ما إذا كانت Azure أو AWS تدعمها ، فهي تعمل بنفس الطريقة وعلى عكس وظائف Azure التي حصلنا عليها في Azure بنتائج مختلفة عن النتائج المحلية على أساس منتظم.
  6. K8s ، على نظام محمل تكلفته أقل من وظائف Azure.
  7. تقوم K8s بالنشر بشكل أفضل من الوظائف.
  8. بمجرد أن تبدأ العمل مع رمز VS عن بُعد في عامل الإرساء ، فلن ترغب في العودة. نفس البيئة التكوين مثل الإنتاج لاتساق 100٪. (نحن نستخدم k8s داخل docker للتطوير مع WSL2 docker و spin k8s لأعلى في linux والتي تعمل بشكل رائع مع Windows 10 2004 ، ولكن التطوير الكامل في k8s سيأتي قريبًا)
  9. يمنحك k8s كل استقلالية الأجهزة الافتراضية دون الحاجة إلى إدارة أجهزة VM وموازنة الأحمال وما إلى ذلك. إنه يعمل فقط.
  10. إذا قمت بإنشاء صور عامل الإرساء بشكل صحيح باستخدام استهداف النظام الأساسي وربط IL بخدماتك المصغرة في k8s فهي صغيرة تمامًا مثل نفسها في وظائف Azure ، لذلك لا توجد مشكلات في القياس.

هذه مجرد قائمة قصيرة. تعتبر وظائف Azure رائعة من الناحية النظرية ، ثم تبدأ بضرب رأسك بالحائط وتكتشف أنه لا يستحق ذلك كثيرًا.

حتى يبدأوا في طرح النواة من Windows 2004 (ربيع 2020) إلى Azure.

لا يزال العمل الضروري لـ IIS قيد التقدم وغير متوفر في إصدار 2004.

تضمين التغريدة فقط آه. لذلك سيكون قد مر أكثر من عام مع دعم .net الأساسي لـ gRPC و Azure الذي لا يمتلك طريقة قابلة للتطبيق للغالبية العظمى من مطوري العالم لاستخدامه.

يحتاج MS إلى إنشاء خدمات تطبيقات تستند إلى عامل إرساء حقيقي تستخدم وكيل nginx أو وكيل ha وليس IIS لـ RP. هذا هو الجوز.

يا صديقي حقًا ، أعتقد أن هذا يمدها ، بالتأكيد يمكن لـ AKS التوسع ولكن
خاصة مع اقتران الرسائل المطلوبة لتشغيل متعددة
حاويات لمشروع كبير لا أكاد أفكر في الحاويات فيه
تمشيا مع المثل العليا للتكنولوجيا بدون خادم. يمكنني بسهولة توصيل وتشغيل أي منها
الخدمات المصغرة التقنية الخلفية مع خوادم ووظائف التطبيقات ولكن سأفعل
هذه الرشاقة مع الحاويات؟

يوم الثلاثاء 12 مايو 2020 الساعة 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/ABCSC7PPWZ7MPIETCXPEFYDRRFFUNANCNFSM4HDHMSDA
.

تضمين التغريدة ولن يكون لديك جحيم تبعية وهو وظائف Azure أيضًا. (ويمكنك بسهولة استخدام مضيف Azure Function في الحاويات وحتى k8s إذا كنت تريد)

acrigney هل تحاول عرض gRPC على خدمات مصغرة أخرى تعمل في خدمة التطبيق؟ كيف تبدو الطوبولوجيا الخاصة بك؟

شكرًا يا صديقي ولكني أعتقد أنه لن يكون لديك أي تبعية أو جحيم
اقتران مع الوظائف. أقوم بعمل خدمات مصغرة ذات حالة باستخدام تطبيق DDD
الخدمات مع خدمات تطبيقات Azure وأنا أقوم بتقديم خدمات مصغرة عديمة الحالة باستخدام
خدمات تطبيق DDD في وظائف Azure. تعرض خدمات تطبيق DDD
يمكن لـ DTOs واستخدام كائنات المجال وخدمات التطبيقات الأخرى مراقبة ملفات
الأحداث التي أطلقتها كائنات المجال هذه. أنا فقط لست بحاجة إلى حاويات ومرة ​​واحدة
إذا قمت ببناء حاوية ، فسيكون لديها الكثير من التعليمات البرمجية المكررة التي من شأنها
ستكون هناك حاجة في حاويات أخرى.

يوم الأربعاء ، 13 مايو ، 2020 الساعة 12:09 صباحًا James Hancock [email protected]
كتب:

acrigney https://github.com/acrigney بالتأكيد ستفعل. وأنت
لن يكون لها جحيم تبعية هو وظائف Azure أيضًا. (ويمكنك
استخدم مضيف Azure Function بسهولة في الحاويات وحتى k8s إذا كنت تريد)

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dotnet/aspnetcore/issues/9020#issuecomment-627369635 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABCSC7PQLO2K4RVWBQRGQS3RRFKCZANCNFSM4HDHMSDA
.

يجب وضع تحذير it-not-run-on-IIS أعلى الصفحة باستخدام علامة <marquee> : https://docs.microsoft.com/en-us/aspnet/core /grpc/؟view=aspnetcore-3.1

إنه حقًا inject profanity here إذا كنت تقوم بإنشاء نماذج أولية وإنشاء ملفات أولية وتهيئة الخادم والعميل والمصادقة باستخدام JWT وعرضت الفكرة بأكملها على العميل لأن هذا هو أفضل شيء تالي- منذ شرائح الخبز لمعرفة أننا لا نستطيع استخدامه في الإنتاج لأننا نعمل على IIS. :(

حتى يبدأوا في طرح النواة من Windows 2004 (ربيع 2020) إلى Azure.

لا يزال العمل الضروري لـ IIS قيد التقدم وغير متوفر في إصدار 2004.

هل توجد خارطة طريق / إتا؟

يجب وضع تحذير it-not-run-on-IIS أعلى الصفحة باستخدام علامة <marquee> : https://docs.microsoft.com/en-us/aspnet/core /grpc/؟view=aspnetcore-3.1

أنت على حق ، لقد قدمت https://github.com/dotnet/AspNetCore.Docs/issues/18336 للتوضيح.

هل توجد خارطة طريق / إتا؟

لا ، هناك عدد كبير جدًا من الأجزاء المتحركة بحيث لا يمكن الاعتماد عليها في تقديرها.

هل لدى أي شخص بعض الوثائق حول كيفية تكوين nginx باستخدام grpc و kestrel؟

مرحبًا بالجميع ، هل يمكننا إعادة توجيه بعض طلبات gRPC في صوت مستخدم AppService https://feedback.azure.com/forums/169385-web-apps؟

سؤال سريع: هل دعم IIS و Azure App Service مقترن ببعضهما البعض أم أنه يمكن / هل سيتم تسليمهما بشكل منفصل؟

شكرا جزيلا!

إنها مقترنة إلى حد ما - يعتمد دخول Azure App Service واستضافة Windows على IIS ، لذا فإن الحصول على الدعم في IIS هو شرط مسبق.

ثم تحتاج خدمة التطبيقات إلى النشر استنادًا إلى بنية بها تلك الإصلاحات ، لذلك ستأتي خدمة التطبيقات بعد دعم IIS.

سؤال سريع: لقد نشرت خادم gRPC على IIS (10.0) وأتلقى الآن خطأ ، "الحالة (رمز الحالة = تم الإلغاء ، التفاصيل = \" لم يتم العثور على حالة grpc عند الاستجابة. \ ")". لقد استخدمت مشروع WebApi كعميل gRPC. يمكن لأي شخص أن يساعدني؟

سؤال سريع: لقد نشرت خادم gRPC على IIS (10.0) وأتلقى الآن خطأ ، "الحالة (StatusCode = ملغى ، التفاصيل =" لم يتم العثور على حالة grpc عند الاستجابة. ")". لقد استخدمت مشروع WebApi كعميل gRPC. يمكن لأي شخص أن يساعدني؟

لا يمكن القيام بذلك ، لا يدعم IIS gRCP.

lumogox @ Dhananjay48 ملاحظة: GRPC-web مدعوم من قبل IIS وتفقد فقط تدفق العميل للجزء الأكبر. لذلك هذا حل ، على الرغم من أنه ليس رائعًا.

بخلاف ذلك ، وفقًا لما أراه ، فإننا ننتظر حتى ديسمبر على الأقل قبل أن يتم إصلاح ذلك في IIS ، لذا توقف عن العمل واستخدم شيئًا آخر مثل nginx كبديل عكسي.

إذا كنت تريد فقط نشر GRPC على Azure App Service ، فيمكنك القيام بذلك الآن باستخدام حاوية Linux

EdiWang هذا غير مدعوم حاليًا في خدمة التطبيقات لنظام Linux. نحن نعمل حاليًا مع خدمة التطبيقات لتمكين ذلك ، ولكن ليس لدي أي وقت محدد للوصول إلى الإنترنت لمشاركته

هل هذا بسبب استمرار وجود HTTP.sys أمام تطبيق الويب ، على الرغم من أنها حاوية عامل إرساء تعمل على Linux؟

أفهم أن جميع خدمات التطبيقات يتم تحويلها إلى وكيل عكسي بواسطة iis. ومن ثم لن يعملوا حتى يتم إصلاح ذلك.

لن يعمل سوى شيء ما مع IP عام أو rped بواسطة ha أو nginx وما إلى ذلك (Linux). تعمل Kubernetes مع nginx أو ha بشكل جيد كمثال ولكن بوابة التطبيق لا تعمل.

أفهم أن جميع خدمات التطبيقات يتم تحويلها إلى وكيل عكسي بواسطة iis. ومن ثم لن يعملوا حتى يتم إصلاح ذلك.

لن يعمل سوى شيء ما مع IP عام أو rped بواسطة ha أو nginx وما إلى ذلك (Linux). تعمل Kubernetes مع nginx أو ha بشكل جيد كمثال ولكن بوابة التطبيق لا تعمل.

إنه أيضًا ما أفهمه. انتهى بي الأمر هنا لأنني قرأت ما إذا كانت جميع خدمات التطبيقات مقدمة من قبل 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 للإنترنت :) أعرف أن هناك IIS عند التشغيل على windows ، لكن لا يمكنني العثور على أي للتحقق من صحة HTTP.sys أو IIS هو أيضًا في المقدمة عند تشغيل عامل الإرساء في خدمة التطبيق. هذا الموضوع هو أقرب ما أتيت إليه. الشيء المضحك هو أنني أشترك في هذا الموضوع لأنني أيضًا ممتع جدًا في gPRC :)

يمكنني أن أؤكد أن iis تقدم أيضًا خدمات التطبيقات المستندة إلى الحاوية بما في ذلك خدمات Linux.

خياراتك الوحيدة هي VMS حيث قمت بإجراء rp بنفسك أو aks.

لم تلق davidfowl AppService User Voice اهتمامًا كبيرًا.

https://feedback.azure.com/forums/169385-web-apps/suggestions/40585333-grpc-support-in-azure-app-service
هل يمكن أن يكون هذا هو سبب بطء التنفيذ؟ كما ترى في هذه المشكلة ، أعتقد أن دعم gRPC مهم.

نعم لا سيما أنني لم أتمكن من الحصول على مآخذ ويب للعمل وأنا كذلك
قلقة بشأن تكلفة الحاويات لأنني سأضطر إلى الركض كثيرًا.

يوم الجمعة 12 يونيو 2020 الساعة 9:58 مساءً Takekazu Omi [email protected]
كتب:

لم تلق davidfowl AppService User Voice اهتمامًا كبيرًا.

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/ABCSC7L4452ZISXIPNAXWYLRWIKADANCNFSM4HDHMSDA
.

إضافة الطلب هناك لا يزال مهمًا جدًا.

davidfowl قول أسهل بكثير من فعله. حاول تسجيل الدخول إلى الموقع باستخدام حساب Microsoft الخاص بك بحافة جديدة. تنبثق نافذة جديدة ولا تفعل شيئًا. حاول وتسجيل الدخول باستخدام البريد الإلكتروني الخاص بي ، حسنًا لقد نسيت كلمة المرور ، ينتقل البريد الإلكتروني لكلمة المرور إلى البريد غير الهام لعنوان البريد الإلكتروني @ outlook.com. قم بتغييره ، وتسجيل الدخول ، ولا يطالب مدير كلمات المرور بتخزين كلمة المرور وما إلى ذلك.

فقط WOW سيئة. أعتقد أن فريق Azure لا يحصل على تعليقات جيدة نتيجة لذلك. آمل أن تتمكن من إعادة توجيه هذا إلى الأشخاص المناسبين لإصلاح هذه الفوضى.

ربما سيساعد شخص ما على استضافة grpc إلى iis.
فيما يلي مثال على عمل grpcweb Blazor WebAssembly مع نهج gRPC-Web Code الأول الذي يستضيف iis عبر النشر عن بُعد مثل السحر. أفترض أنه يمكن أن يعمل بطرق أخرى أيضًا. لم أقم بأي اختبار للأداء ، لذا لم أتمكن من التعليق على ذلك ، لكنني أعتقد على الأقل أنه سيعمل بشكل جيد على أي شيء يصل إلى حلول متوسطة الحجم.
هنا رابط جيثب
كما أنه يستخدم protobuf-net.Grpc.AspNetCore وهو إعلان غير ممل للبروتوبوف. إنه لأمر جيد جدًا عندما يمكنك الانتقال مباشرة إلى التنفيذ أو إضافة طرق إضافية للطلب / الاستجابة.

مرحبًا بالجميع ، أحتاج إلى تحديد نوع مصفوفة سلسلة dataType في رسالة Grpc. لست متأكدًا من كيفية القيام بذلك. الآن أنا أفعل ذلك باعتباره
اسم السلسلة المكررة = 1 ،
هنا أحتاج إلى حقل الاسم كنوع مصفوفة السلسلة. لكنه يُظهر خطأ أنه كذلك ، الحقل يُكتب للقراءة فقط عند ربط البيانات فيه.

@ Dhananjay48 هذا ليس StackOverflow. الرجاء طرح سؤالك هناك.
دعنا نحتفظ بهذه المشكلة للأشياء المتعلقة بـ gRPC في خدمة التطبيقات.

أفهم أن جميع خدمات التطبيقات يتم تحويلها إلى وكيل عكسي بواسطة iis. ومن ثم لن يعملوا حتى يتم إصلاح ذلك.

لن يعمل سوى شيء ما مع IP عام أو rped بواسطة ha أو nginx وما إلى ذلك (Linux). تعمل Kubernetes مع nginx أو ha بشكل جيد كمثال ولكن بوابة التطبيق لا تعمل.

هل يمكن أن يكون "Kestrel المستخدم في تكوين وكيل عكسي" مع nginx حلاً؟ 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.

في الخميس ، 25 يونيو 2020 ، الساعة 1:48 مساءً ، كتب OzBob [email protected] :

أفهم أن جميع خدمات التطبيقات يتم تحويلها إلى وكيل عكسي بواسطة iis.
ومن ثم لن يعملوا حتى يتم إصلاح ذلك.

فقط شيء مع IP عام أو rped بواسطة ha أو nginx وما إلى ذلك (Linux) سيفعل
الشغل. Kubernetes مع nginx أو ha تعمل بشكل جيد كمثال ولكن التطبيق
بوابة كما لن تدخل.

يمكن أن يكون "Kestrel المستخدم في تكوين وكيل عكسي" مع nginx ، يكون ملف
المحلول؟
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 في
docs ، لتضمين مثال على حل الاستضافة:
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/ABCSC7KBUALMCXDGUS2NV7LRYLCKNANCNFSM4HDHMSDA
.

acrigney والمذكور هنا على Ch9 أيضًا: https://youtu.be/T4RD3W2MgHQ؟list=TLPQMjUwNjIwMjB6we-UTBA_VA&t=288 بواسطة shirhatti (https://twitter.com/sshirhatti)

أردت فقط أن أوضح أننا نعمل مع فريق Windows لبدء تمكين هذه السيناريوهات. إليك منشور مدونة من فريق Windows حول هذا الموضوع ، و https://github.com/dotnet/aspnetcore/pull/24120 لديه بعض أعمال المتابعة لفضح الأشياء في ASP.NET Core.

سيستمر الأمر بعض الوقت قبل كل هذه الأراضي ، ولكن من الجيد أن نتمكن من الإبلاغ عن أننا نحرز تقدمًا على الأقل.

شكرا على المتابعة ، مفيد جدا ومقدر !!

يوم الأربعاء 22 يوليو 2020 الساعة 11:17 صباحًا Kevin Pilch [email protected]
كتب:

أردت فقط أن أوضح أننا نعمل مع فريق Windows من أجل
ابدأ في تمكين هذه السيناريوهات. هذا هو بلوق وظيفة
https://aka.ms/grpcblogpost من فريق Windows حول هذا الموضوع ، و # 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.

سيستمر الأمر بعض الوقت قبل كل هذه الأراضي ، ولكن من الجيد أن نتمكن من الإبلاغ عن أننا نحرز تقدمًا على الأقل.

لاحظ أنه تم دمج هذا بالفعل في خادم HttpSys الخاص بـ AspNetCore في المعاينات 5.0. يرجى محاولة إعطائها. إذا تمكنا من تحديد أي مشكلات في هذه الطبقة الآن ، فمن المفترض أن تكون لدينا مشاكل أقل عندما نضيف طبقة IIS فوق هذا.

هل هذا يعني أنه يمكنني عمل gRPC كامل على IIS إذا استخدمت ASP.NET Core لاستهداف معاينة .NET 5؟

ليس بعد. هناك مجموعة من الأجزاء المختلفة هنا:

  1. وحدة Http.sys في نظام التشغيل Windows
  2. دعم ASP.NET Core لهذا في HttpSysServer
  3. دعم IIS لهذا في Windows
  4. دعم ASP.NET Core لهذا على IIS
  5. دعم هذا في الوكيل العكسي الذي تستخدمه Azure App Service
  6. تقوم خدمة Azure App Service بنشر بناء من Windows مع 1 و 3.
  7. تقوم خدمة Azure App Service بنشر بناء للوكيل العكسي من 5
  8. تقوم خدمة تطبيقات Azure بنشر بنية ASP.NET Core مع 2 و 4.

ما قالتهTratcher هو أن 1 و 2 متاحان في معاينات من .NET 5. نحن نعمل على 3 و 4 في الوقت الحالي ، ولكن تجربة 1 و 2 ستساعدنا في تزويدنا بتعليقات حول ما إذا كان ذلك سيعمل ، منذ Http. يعد دعم sys أحد دعائم دعم IIS.

يجب أن يكون الأمر كذلك ، 1 متاح في معاينات Windows ، و 2 متاح في معاينات .NET 5.

معاينة Windows Insider متاحة مع http.sys المحدث
https://techcommunity.microsoft.com/t5/networking-blog/windows-server-insiders-getting-grpc-support-in-http-sys/ba-p/1534273

أي أفكار إذا كان هذا سيكون متاحًا كتحديث Windows لـ Windows Server 2016/2019؟

ويتوفر دعم IIS الآن في أحدث إصدارات Windows Insider التي تم الإعلان عنها هنا .

نحن نحقق فيما إذا كان من الممكن دعم هذه التغييرات لخدمة البناء ، ولكن هذا لا يزال في الهواء. اعتبارًا من الآن ، فإن الخطة الوحيدة للتسجيل هي أنها ستكون في الإصدارات المستقبلية.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات