रिवर्स प्रॉक्सी 404 के पीछे ब्लेज़र सर्वर साइड


10

मेरे पास एक रिवर्स प्रॉक्सी (एआरआर का उपयोग करके) के पीछे IIS पर होस्ट किया गया एक ब्लेज़र सर्वर-साइड ऐप है।

मैंने वह सब कुछ करने की कोशिश की है जिसके बारे में मैं सोच सकता हूं, लेकिन मुझे 404 मिलते रहते हैं

_framework / blazor.server.js

मेरा आधार href "/ subsite /" पर सेट है:

<base href="https://stackoverflow.com/subsite/" />

और मेरे सभी src मूल्य इस तरह रिश्तेदार हैं:

<script src="_framework/blazor.server.js"></script>
<script src="_content/BlazorInputFile/inputfile.js"></script>
<script src="animations.js"></script>

हर दूसरी स्क्रिप्ट को ठीक से लोड किया जाता है, फिर भी _content डेटा को EVEN करें, लेकिन blazor.server.js को नहीं।

मैंने MVC ऐप्स के लिए पुराने PathBase ट्रिक के साथ-साथ बिना किसी सफलता के प्रयास किया:

if (!env.IsDevelopment()) {
    app.Use((context, next) => {
        context.Request.PathBase = new PathString("/subsite");
        return next();
    });
}

क्या कोई मुझे बता सकता है कि ब्लाज़ोर को यह एहसास कैसे कराया जाए कि ब्लाज़ोर को कैसे रखा जाए।


1
blazor.server.js एक एम्बेडेड संसाधन है। आप फ़ाइल की एक प्रति प्राप्त करने की कोशिश कर सकते हैं और किसी अन्य js फ़ाइल की तरह इसे सांख्यिकीय रूप से सेवा दे सकते हैं। लेकिन फिर भी सर्वर और ब्राउजर के बीच सिग्नल-आर चैटर बहुत है। निश्चित नहीं है कि यह आपके सेटअप में कैसे काम करेगा।
रवि

हम्म। मुझे वास्तव में यह समझ में नहीं आया है, क्योंकि घटक एम्बेडेड संसाधन भी हैं, _ कॉन्टेंट में रहते हैं, लेकिन यह उन्हें ठीक लगता है। मैं इसे हथियाने और इसे वैधानिक रूप से परोसने की कोशिश करूँगा, लेकिन यह एक वास्तविक बग जैसा लगता है - मेरा मतलब है, आप 2019 में रिवर्स प्रॉक्सी सबसाइट्स का समर्थन करना कैसे भूल सकते हैं
Dynde

क्या आपके पास कोई लॉगिंग उपलब्ध है जो देखने के लिए (और यदि) अनुरोध पथ ASP.NET के साथ समाप्त होता है?
हेंक होल्टरमैन

जवाबों:



-1

से डॉक्स

सही मार्ग के लिए URL फिर से लिखें

एक Blazor WebAssembly ऐप में पेज घटकों के लिए रूटिंग अनुरोध एक Blazor सर्वर, रूटिंग ऐप में रूटिंग अनुरोधों के समान सरल नहीं है। दो घटकों के साथ एक ब्लेज़र WebAssembly ऐप पर विचार करें:

  • Main.razor - एप्लिकेशन की जड़ में लोड होता है और Aboutघटक ( href="About") के लिए एक लिंक होता है ।
  • About.razor - Aboutघटक।

जब ब्राउज़र के एड्रेस बार (उदाहरण के लिए https://www.contoso.com/) का उपयोग करके एप्लिकेशन के डिफ़ॉल्ट दस्तावेज़ का अनुरोध किया जाता है :

  • ब्राउज़र एक अनुरोध करता है।
  • डिफ़ॉल्ट पृष्ठ दिया जाता है, जो आमतौर पर है index.html
  • index.html ऐप को बूटस्ट्रैप करता है।
  • ब्लेज़र का राउटर लोड होता है, और रेज़र Mainघटक प्रदान किया जाता है।

मुख्य पृष्ठ में, ग्राहक के बारे में घटक के लिंक का चयन करता है क्योंकि ब्लेज़र राउटर ब्राउज़र को इंटरनेट पर अनुरोध करने के www.contoso.comलिए रोक देता है Aboutऔर प्रदान किए गए Aboutघटक को स्वयं कार्य करता है। Blazor WebAssembly ऐप के भीतर आंतरिक समापन बिंदुओं के लिए सभी अनुरोध उसी तरह से काम करते हैं: अनुरोध इंटरनेट पर सर्वर-होस्ट किए गए संसाधनों के लिए ब्राउज़र-आधारित अनुरोधों को ट्रिगर नहीं करते हैं। राउटर आंतरिक रूप से अनुरोधों को संभालता है।

यदि ब्राउज़र के एड्रेस बार का उपयोग करने के www.contoso.com/Aboutलिए अनुरोध किया जाता है, तो अनुरोध विफल हो जाता है। ऐप के इंटरनेट होस्ट पर ऐसा कोई संसाधन मौजूद नहीं है, इसलिए 404 - नॉट फाउंड रिस्पॉन्स लौटाया जाता है।

क्योंकि ब्राउज़र क्लाइंट-साइड पेजों के लिए इंटरनेट-आधारित मेजबानों के लिए अनुरोध करते हैं, वेब सर्वर और होस्टिंग सेवाओं को ज़रूरी है कि वे उन संसाधनों के लिए सभी अनुरोधों को फिर से लिखें , जो सर्वर पर index.html पेज पर नहीं हैं। जब index.html वापस आ जाता है, तो ऐप का Blazor रूटर सही संसाधन के साथ काम करता है और प्रतिक्रिया देता है।

जब आप IIS सर्वर पर तैनाती करते हैं, तो आप ऐप के प्रकाशित web.config फ़ाइल के साथ URL रिवाइटर मॉड्यूल का उपयोग कर सकते हैं । अधिक जानकारी के लिए, IIS अनुभाग देखें ।


हो सकता है कि आप IIS प्रबंधक में आगे प्रॉक्सी को सक्षम करने का प्रयास कर सकते हैं-> सर्वर नोड-> एप्लिकेशन अनुरोध मार्ग कैश-> प्रॉक्सी-> सक्षम करें।

यदि आपके पास केवल एक वेबसाइट है, तो आप वेबसाइट को एआरआर सर्वर फ़ार्म में जोड़ सकते हैं और फिर यह स्वचालित रूप से रूटिंग नियम बनाएगा। स्वास्थ्य जांच के साथ बैक-एंड सर्वर की निगरानी करना सुविधाजनक होगा।

क्या यह ARR चेतावनी मेरे 404 का कारण है?


खैर, जहाँ तक मैं देख सकता हूँ - वह लेख ब्लेज़ोर वेबसैम के आसपास घूमता है, और मैं सर्वर साइड का उपयोग कर रहा हूं। इसके अलावा, मेरा IIS पहले से ही ARR के फॉरवर्ड प्रॉक्सी फीचर का उपयोग कर रहा है (जैसा कि यह है कि मैं अपने सेटअप में रिवर्स प्रॉक्सी कर रहा हूं)।
डायंडे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.