ASP.NET Core uygulamalarından diğer sunuculardaki paylaşımlı klasörlere erişme (IIS, uygulama havuzu ayarları)
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.