ASP.NET कोर अनुप्रयोगों (IIS, अनुप्रयोग पूल सेटिंग्स) से अन्य सर्वर पर साझा फ़ोल्डरों तक पहुँचना

पेज अद्यतन :
पेज निर्माण की तारीख :

ऑपरेशन सत्यापन वातावरण

विजुअल स्टूडियो
  • विजुअल स्टूडियो 2022
ASP.NET कोर
  • 6 (Razpr पृष्ठ)
विंडोज सर्वर
  • 2022 (ASP.NET कोर सिस्टम आवश्यकताएँ)
  • 2019 (साझा फ़ोल्डर परिनियोजन सर्वर)
आईआईएस
  • 10.0

परिचालन का वातावरण

मैंने इसे हर चीज में परीक्षण नहीं किया है, लेकिन इसे अधिकांश भाग के लिए काम करना चाहिए।

विजुअल स्टूडियो
  • कुछ भी जो एक ASP.NET या ASP.NET कोर प्रोजेक्ट विकसित कर सकता है
ASP.NET कोर
  • कोई भी संस्करण (एमवीसी, रेजर पेज, एपीआई)
ASP.NET
  • कोई भी संस्करण स्वीकार्य है
विंडोज सर्वर
  • Windows Server 2008 या बाद का संस्करण
आईआईएस
  • 7.0 या बाद में

पूर्व शर्त

  • ASP.NET कोर अनुप्रयोग IIS पर चलाने के लिए अभिप्रेत हैं। अन्य वेब सर्वर इन युक्तियों की सामग्री को लागू करने में सक्षम नहीं होंगे

पर्यावरण

यह निम्नलिखित वातावरण में सत्यापित है।

पीसी और सर्वर के उपयोग का उद्देश्य
विंडोज 11 (स्थानीय) विकासशील कार्यक्रमों के लिए एक वातावरण। इस लेख के उद्देश्य के लिए अप्रासंगिक
एसवी2022टेस्ट एक वातावरण जो IIS और ASP.NET Core चलाता है। यहां से SV2019Test साझा फ़ोल्डर तक पहुंचें
SV2019टेस्ट साझा फ़ोल्डरों के साथ सर्वर

इसके अलावा, विभिन्न सेटिंग्स इस प्रकार हैं।

पैरामीटर नाम मान
उपयोगकर्ता नाम तक पहुंचें साझा उपयोगकर्ता
साझा फ़ोल्डर नाम साझा फ़ोल्डर

ASP.NET कोर अनुप्रयोग से साझा फ़ोल्डर से फ़ाइलों को पढ़ने और लिखने के लिए एक प्रोग्राम बनाएँ

श्री/सुश्री पुल के रूप में, बस बटन पर क्लिक करें,

  • फ़ाइलों को किसी साझा फ़ोल्डर में लोड करें और उन्हें स्क्रीन पर प्रदर्शित करें
  • किसी साझा फ़ोल्डर में नई फ़ाइल लिखें

प्रक्रिया।

मैंने अभी तक एक साझा फ़ोल्डर नहीं बनाया है, इसलिए मैं इसे डीबग नहीं कर सकता, लेकिन यह सरल कोड है, इसलिए मैं समय के लिए एक प्रोग्राम बनाऊंगा।

ASP.NET कोर प्रोजेक्ट किसी भी प्रकार का हो सकता है, लेकिन इस मामले में, मैं रेजर पेज का उपयोग कर रहा हूं।

Index.cshtml.cs और जोड़ें कि बटन क्लिक करने पर क्या होता है। सर्वर नाम सीधे लिखा गया है, लेकिन कृपया इसे वास्तविक ऑपरेशन में अच्छी तरह से समायोजित करें। कुछ मामलों में, साझा फ़ोल्डर सुलभ नहीं हो सकता है, इसलिए यह एक कोशिश-कैच में संलग्न है।

public class IndexModel : PageModel
{
  // 省略

  public void OnGet() { }

  // ここから追加
  public void OnPost()
  {
    var serverName = "SV2019Test";
    try
    {
      var readFilePath = $@"\\{serverName}\SharedFolder\Input.txt";
      var writeFilePath = $@"\\{serverName}\SharedFolder\Output.txt";

      // 共有フォルダからファイルを読み込む
      var text = System.IO.File.ReadAllText(readFilePath);

      // 別ファイルとして共有フォルダに書き込む
      System.IO.File.WriteAllText(writeFilePath, text);

      // 読み込んだ内容を画面に表示する
      ViewData["Message"] = text;
    }
    catch (Exception ex)
    {
      ViewData["Message"] = ex;
    }
  }
  // ここまで追加
}

Index.cshtml एक बटन और एक संदेश है।

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

@* ここから追加 *@
<form method="post">
  <button type="submit">処理実行</button>
</form>
<div>@ViewData["Message"]</div>
@* ここまで追加 *@

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

प्रकाशन कॉन्फ़िगरेशन जोड़ें.

सेटिंग्स बदलें।

सेटिंग्स बदल जाती हैं जैसा कि चित्र में दिखाया गया है। यह भी विशेष रूप से इस समय के उद्देश्य से संबंधित नहीं है, इसलिए कृपया इसे अपने पर्यावरण के अनुसार सेट करें।

प्रोग्राम प्रकाशित करें.

प्रोग्राम प्रकाशित करने के बाद, "लक्ष्य स्थान" लिंक पर क्लिक करें और उन फ़ाइलों वाला फ़ोल्डर खुल जाएगा जिन्हें आप रखना चाहते हैं।

साझा फ़ोल्डर सर्वर का निर्माण

उपयोगकर्ता बनाना

आम तौर पर, यदि सर्वर अलग है, तो प्रत्येक सर्वर पर बनाए गए उपयोगकर्ता को आंतरिक रूप से पूरी तरह से अलग उपयोगकर्ता के रूप में माना जाता है। समान उपयोगकर्ता नाम और पासवर्ड वाली फ़ाइल बनाकर, आप Windows प्रमाणीकरण को किसी अन्य सर्वर पर छोड़ सकते हैं. इस बार हम इसका उपयोग किसी अन्य सर्वर पर साझा फ़ोल्डर तक पहुँचने के लिए करेंगे।

वैसे, यदि आप सक्रिय निर्देशिका जैसे डोमेन में सर्वर और खातों के साथ काम कर रहे हैं, तो आप उस खाते के साथ दोनों सर्वर सेट कर सकते हैं, जो कॉन्फ़िगरेशन को कुछ हद तक सरल करता है।

उपयोगकर्ता बनाने की प्रक्रिया का विस्तार से वर्णन नहीं किया गया है।

SharedUser इस मामले में, हम इसे नाम से बनाएंगे। चूंकि यह उपयोगकर्ता स्क्रीन को संचालित नहीं करता है या सेटिंग्स नहीं बदलता है, इसलिए पासवर्ड बदला नहीं जा सकता है।

यदि आप डिफ़ॉल्ट छोड़ देते हैं, तो आप इस उपयोगकर्ता के साथ दूरस्थ डेस्कटॉप आदि के साथ लॉग इन कर सकते हैं, इसलिए कृपया समूह Users से हटा दें .

साझा फ़ोल्डर बनाना

इससे कोई फर्क नहीं पड़ता कि आप इसे कहां बनाते हैं। ऐसा इसलिए है क्योंकि अन्य सर्वर भौतिक फ़ोल्डर के स्थान की परवाह नहीं करते हैं। इस मामले में, हम सीधे सी ड्राइव के तहत SharedFolder नामित एक फ़ोल्डर बनाएंगे और इसे साझा करेंगे।

गुण खोलें और साझाकरण सेटिंग्स कॉन्फ़िगर करें।

साझा फ़ोल्डर का नाम होना चाहिए SharedFolder । यह नाम अन्य सर्वरों को दिखाई देगा. अनुमतियों में जोड़ें SharedUser

Everyone मौजूदा हटाएँ.

"बदलें" अनुमति से पुष्टि करें।

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

"बदलें" अनुमति से पुष्टि करें।

कार्रवाई की जाँच करने के लिए एक फ़ाइल बनाएँ।

यह ठीक है यदि आप किसी अन्य पीसी से \\<サーバー名>\ एक्सप्लोरर में एक्सेस कर सकते हैं, लॉग इनSharedUser कर सकते हैं और फ़ाइल देख सकते हैं।

एक अनुप्रयोग सर्वर का निर्माण

IIS स्थापित करना

कुछ समय के लिए, इसे सर्वर प्रबंधक से डिफ़ॉल्ट रूप से स्थापित करें। मैं प्रक्रिया के विस्तार में नहीं जाऊंगा।

कोई अतिरिक्त सुविधाओं की आवश्यकता नहीं है।

इस समय कोई अतिरिक्त IIS सेवा की आवश्यकता नहीं है।

ASP.NET कोर रनटाइम होस्टिंग बंडल इंस्टालेशन

चूंकि हम ASP.NET कोर 6 का उपयोग कर रहे हैं, इसलिए हमें तदनुसार रनटाइम स्थापित करने की आवश्यकता है। इसे निम्न URL से डाउनलोड करें:

आईआईएस में ASP.NET कोर चलाने के लिए, आपको "होस्टिंग बंडल" नामक कुछ चाहिए। ASP.NET कोर रनटाइम से "होस्टिंग बंडल" डाउनलोड करें।

एक बार डाउनलोड हो जाने के बाद, इसे सर्वर पर चलाएं।

इसे स्थापित करने के लिए विज़ार्ड का अनुसरण करें.

वेब अनुप्रयोग बनाना और परिनियोजित करना

Windows व्यवस्थापकीय उपकरण से, इंटरनेट सूचना सेवाओं (IIS) प्रबंधक खोलें।

आप "डिफ़ॉल्ट वेब साइट" का उपयोग कर सकते हैं जैसा कि यह है, लेकिन इस बार हम एक नई साइट बनाएंगे। डिफ़ॉल्ट वेब साइट स्वचालित रूप से प्रारंभ हो जाती है, इसलिए कृपया इसे रोकें.

कोई नई वेब साइट बनाएँ.

इस बार, साइट का नाम है SharedFolderAccess , लेकिन इससे कोई फर्क नहीं पड़ता।

नई साइट के लिए अनुप्रयोग पूल स्वतः जनरेट किया गया है.

अपनी पसंद का एक फ़ोल्डर बनाएं और निर्दिष्ट करें जहां आप प्रोग्राम रखना चाहते हैं।

पोर्ट 80 "डिफ़ॉल्ट वेब साइट" लेबल किया गया है और आप एक चेतावनी देखेंगे, लेकिन यदि यह पहले से ही डाउन है, तो आप इसे अनदेखा कर सकते हैं।

इसे बनाया गया है।

Windows Explorer में वेब साइट में निर्दिष्ट फ़ोल्डर खोलें, और सभी प्रकाशित प्रोग्रामों की प्रतिलिपि बनाएँ और उन्हें वैसे ही रखें जैसे वे हैं.

आईआईएस लिंक से पृष्ठ खोलें और देखें कि स्क्रीन दिखाई देती है या नहीं। आप पहले एक वेब ब्राउज़र खोल सकते हैं और सीधे URL दर्ज कर सकते हैं।

वैसे, अगर आप इस स्थिति में बटन पर क्लिक करते हैं, तो भी आपको एक त्रुटि मिलेगी क्योंकि अनुमति सेटिंग अभी तक पूरी नहीं हुई है।

उपयोगकर्ता बनाना

साझा फ़ोल्डर सर्वर पर के रूप में अनुप्रयोग सर्वर पर एक ही उपयोगकर्ता SharedUser बनाएँ। सुनिश्चित करें कि आपके पासवर्ड भी मेल खाते हैं। कदम बिल्कुल समान हैं।

अनुप्रयोग पूल अनुमतियाँ परिवर्तित करना

वेब प्रोग्राम द्वारा पहुँच अनुप्रयोग पूल द्वारा निर्धारित की जाती है। डिफ़ॉल्ट रूप से, इसमें केवल ApplicationPoolIdentity वेब एप्लिकेशन चलाने के विशेषाधिकार हैं।

इस विशेषाधिकार को बदलकर , SharedUser वेब प्रोग्राम आपके द्वारा सेट किए गए उपयोगकर्ता के विशेषाधिकारों के साथ काम कर सकता है। यह वेब प्रोग्राम SharedUser को साझा किए गए फ़ोल्डरों तक पहुंचने की अनुमति देता है।

जब आप IIS प्रबंधक खोलते हैं, तो अनुप्रयोग पूलका चयन करें।

जब आप एक वेबसाइट बनाते हैं तो स्वचालित रूप से जोड़ा जाता SharedFolderAccess है, इसलिए उस पर राइट-क्लिक करें और "उन्नत" चुनें।

प्रक्रिया मॉडल में एक "आईडी" है, इसलिए दाईं ओर बटन पर क्लिक करें।

"कस्टम खाता" चुनें और "सेटिंग" बटन पर क्लिक करें।

SharedUser अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करें और पुष्टि करें।

संचालन की पुष्टि

वेब पेज पर जाएं और बटन पर क्लिक करें। यदि पाठ फ़ाइल की सामग्री प्रदर्शित की जाती है, तो यह सफल होती है।

सुनिश्चित करें कि आपके पास साझा फ़ोल्डर में एक नई फ़ाइल भी है।