ASP.NET Core uygulamalarından diğer sunuculardaki paylaşımlı klasörlere erişme (IIS, uygulama havuzu ayarları)

Sayfa güncel :
Sayfa oluşturma tarihi :

Operasyon doğrulama ortamı

Visual Studio
  • Visual Studio 2022
ASP.NET Çekirdeği
  • 6 (Razpr Sayfaları)
Windows Sunucusu
  • 2022 (ASP.NET Çekirdek Sistem Gereksinimleri)
  • 2019 (Paylaşımlı Klasör Dağıtım Sunucusu)
IIS (IIS)
  • 10.0

Çalışma ortamı

Her şeyde test etmedim, ancak çoğunlukla çalışması gerekiyor.

Visual Studio
  • Bir ASP.NET veya ASP.NET Core projesi geliştirebilecek her şey
ASP.NET Çekirdeği
  • Herhangi bir sürüm (MVC, Razor Pages, API)
ASP.NET
  • Herhangi bir sürüm kabul edilebilir
Windows Sunucusu
  • Windows Server 2008 veya üzeri
IIS (IIS)
  • 7.0 veya üstü

önkoşul

  • ASP.NET Core uygulamaları IIS üzerinde çalışacak şekilde tasarlanmıştır. Diğer web sunucuları bu ipuçlarının içeriğini uygulayamayacaktır

çevre

Aşağıdaki ortamda doğrulanır.

PC'lerin ve sunucuların kullanım amacı
Windows 11 (Yerel) Program geliştirmek için bir ortam. Bu makalenin amacı ile ilgisi yok
SV2022 Testi IIS ve ASP.NET Core çalıştıran bir ortam. SV2019Test paylaşımlı klasörüne buradan erişin
SV2019 Testi Paylaşılan klasörlere sahip sunucular

Ek olarak, çeşitli ayarlar aşağıdaki gibidir.

Parametre Adı Değeri
Erişim Kullanıcı Adı Paylaşılan Kullanıcı
Paylaşılan Klasör Adı Paylaşılan Klasör

ASP.NET Core uygulamasından paylaşılan bir klasördeki dosyaları okumak ve yazmak için bir program oluşturma

Bay/Bayan çekme olarak, düğmeye tıklamanız yeterlidir,

  • Dosyaları paylaşılan bir klasöre yükleyin ve ekranda görüntüleyin
  • Paylaşılan klasöre yeni bir dosya yazma

işlem.

Henüz paylaşılan bir klasör oluşturmadım, bu yüzden hata ayıklayamıyorum, ancak bu basit bir kod, bu yüzden şimdilik sadece bir program yapacağım.

ASP.NET Core projesi herhangi bir türde olabilir, ancak bu durumda Razor Pages kullanıyorum.

Index.cshtml.cs ve düğmeye tıklandığında ne olacağını ekleyin. Sunucu adı doğrudan yazılır, ancak lütfen gerçek işlemde iyi ayarlayın. Bazı durumlarda, paylaşılan klasöre erişilemeyebilir, bu nedenle bir deneme yakalama içine alınır.

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 bir düğmesi ve bir mesajı vardır.

@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>
@* ここまで追加 *@

Programı oluşturduktan sonra, sunucuya dağıtmak için bir dosya oluşturun. Bu durumda, yayınlanan dosyayı doğrudan yerleştirme yöntemini kullanacağız, ancak hangi yöntemi kullandığınız önemli değil. Ek olarak, programın düzenlenmesi bu ipucunun özü değildir, bu nedenle basitleştirilmiş bir şekilde listelenmiştir.

Yayımlama yapılandırması ekleyin.

Ayarları değiştirin.

Ayarlar şekilde gösterildiği gibi değiştirilir. Bu aynı zamanda özellikle bu zamanın amacı ile ilgili değildir, bu yüzden lütfen ortamınıza göre ayarlayın.

Programı yayımlayın.

Programı yayınladıktan sonra, "Hedef Konum" bağlantısını tıklayın ve yerleştirmek istediğiniz dosyaların bulunduğu klasör açılacaktır.

Paylaşımlı Klasör Sunucusu Oluşturma

Kullanıcı oluşturma

Normalde, sunucu farklıysa, her sunucuda oluşturulan kullanıcı dahili olarak tamamen farklı bir kullanıcı olarak kabul edilir. Aynı kullanıcı adı ve parolaya sahip bir dosya oluşturarak, Windows kimlik doğrulamasını başka bir sunucuya atlayabilirsiniz. Bu sefer bunu başka bir sunucudaki paylaşılan klasöre erişmek için kullanacağız.

Bu arada, Active Directory gibi bir etki alanındaki sunucular ve hesaplarla uğraşıyorsanız, her iki sunucuyu da bu hesapla kurabilirsiniz, bu da yapılandırmayı bir dereceye kadar basitleştirir.

Bir kullanıcı oluşturma prosedürü ayrıntılı olarak açıklanmamıştır.

SharedUser Bu durumda, onu adıyla oluşturacağız. Bu kullanıcı ekranı çalıştırmadığı veya ayarları değiştirmediği için şifre değiştirilemez.

Varsayılanı bırakırsanız, bu kullanıcıyla Uzak Masaüstü vb. ile oturum açabilirsiniz, bu nedenle lütfen gruptan Users kaldırın .

Paylaşılan Klasör Oluşturma

Nerede oluşturduğunuz önemli değil. Bunun nedeni, diğer sunucuların fiziksel klasörün konumunu önemsememesidir. Bu durumda, doğrudan C sürücüsünün altında SharedFolder adında bir klasör oluşturacağız ve paylaşacağız.

Özellikleri açın ve paylaşım ayarlarını yapılandırın.

Paylaşılan klasörün SharedFolder adı olmalıdır. Bu ad diğer sunucular tarafından görülebilir. İzinleri ekleyin SharedUser .

Everyone Var olan .

"Değiştir" izniyle onaylayın.

Yalnızca dışarıdan erişilebilen izinler eklediğimizden, bu klasörde çalışabilmesi için dahili olarak SharedUser ayarlayacağız.

"Değiştir" izniyle onaylayın.

İşlemi kontrol etmek için bir dosya oluşturun.

Explorer'a \\<サーバー名>\ başka bir bilgisayardan erişebiliyorsanız, ile oturum açabiliyorsanızSharedUser ve dosyayı görüntüleyebiliyorsanız, sorun değil.

Uygulama Sunucusu Oluşturma

IIS'yi yükleme

Şimdilik, varsayılan olarak sunucu yöneticisinden yükleyin. Prosedürün ayrıntılarına girmeyeceğim.

Ek özellik gerekmez.

Şu anda ek IIS hizmetleri gerekli değildir.

ASP.NET Core Çalışma Zamanı Barındırma Paketi Kurulumu

ASP.NET Core 6 kullandığımız için çalışma zamanını buna göre kurmamız gerekiyor. Aşağıdaki URL'den indirin:

ASP.NET Core'u IIS'de çalıştırmak için "Hosting Bundle" adlı bir şeye ihtiyacınız var. ASP.NET Core Runtime'dan "Hosting Bundle"ı indirin.

İndirdikten sonra sunucuda çalıştırın.

Yüklemek için sihirbazı izleyin.

Web Uygulamaları Oluşturma ve Dağıtma

Windows Yönetimsel Araçlar'dan Internet Information Services (IIS) Yöneticisi'ni açın.

"Varsayılan Web Sitesi"ni olduğu gibi kullanabilirsiniz, ancak bu sefer yeni bir site oluşturacağız. Varsayılan Web Sitesi otomatik olarak başlatılır, bu yüzden lütfen durdurun.

Yeni bir Web sitesi oluşturun.

Bu sefer site adı SharedFolderAccess , ama önemli değil.

Uygulama havuzu yeni site için otomatik olarak oluşturulur.

Programı yerleştirmek istediğiniz klasörü oluşturun ve belirtin.

Bağlantı noktası 80 "Varsayılan Web Sitesi" olarak etiketlenmiştir ve bir uyarı görürsünüz, ancak zaten kapalıysa bunu yoksayabilirsiniz.

Oluşturuldu.

Web sitesinde belirtilen klasörü Windows Gezgini'nde açın ve yayımlanan tüm programları olduğu gibi kopyalayıp yerleştirin.

Sayfayı IIS bağlantısından açın ve ekranın görünüp görünmediğine bakın. Önce bir web tarayıcısı açabilir ve URL'yi doğrudan girebilirsiniz.

Bu arada, bu durumdaki düğmeye tıklasanız bile, izin ayarı henüz tamamlanmadığı için bir hata alırsınız.

Kullanıcı oluşturma

Uygulama sunucusunda, paylaşılan klasör sunucusundakiyle aynı kullanıcıyı SharedUser oluşturun. Şifrelerinizin de eşleştiğinden emin olun. Adımlar tamamen aynı.

Uygulama Havuzu İzinlerini Değiştirme

Web programları ile erişim, uygulama havuzu tarafından belirlenir. Varsayılan olarak, yalnızca ApplicationPoolIdentity web uygulamalarını çalıştırma ayrıcalıklarına sahiptir.

Bu yetkiyi SharedUser olarak değiştirerek, web programı belirlediğiniz kullanıcının yetkileriyle çalışabilir. Bu, web programlarının SharedUser içindeki paylaşılan klasörlere erişmesine izin verir.

IIS Yöneticisi'ni açtığınızda Uygulama Havuzları'nı seçin.

Bir web sitesi oluşturduğunuzda otomatik olarak eklenir SharedFolderAccess , bu yüzden üzerine sağ tıklayın ve "Gelişmiş" i seçin.

Süreç modelinde bir "ID" var, bu yüzden sağdaki düğmeyi tıklayın.

"Özel Hesap" ı seçin ve "Ayarlar" düğmesini tıklayın.

SharedUser Kullanıcı adınızı ve şifrenizi girin ve onaylayın.

Operasyonun onaylanması

Web sayfasına gidin ve düğmesine tıklayın. Metin dosyasının içeriği görüntüleniyorsa başarılı olur.

Paylaşılan klasörde de yeni bir dosyanız olduğundan emin olun.