Truy cập các thư mục được chia sẻ trên các máy chủ khác từ các ứng dụng ASP.NET Core (IIS, cài đặt nhóm ứng dụng)
Môi trường xác minh hoạt động
- Visual Studio
-
- Visual Studio 2022
- Lõi ASP.NET
-
- 6 (Trang Razpr)
- Máy chủ Windows
-
- 2022 (Yêu cầu hệ thống ASP.NET Core)
- 2019 (Máy chủ triển khai thư mục dùng chung)
- IIS
-
- 10.0
Môi trường hoạt động
Tôi chưa thử nghiệm nó trong mọi thứ, nhưng nó sẽ hoạt động cho hầu hết các phần.
- Visual Studio
-
- Bất cứ điều gì có thể phát triển một dự án ASP.NET hoặc ASP.NET Core
- Lõi ASP.NET
-
- Bất kỳ phiên bản nào (MVC, Razor Pages, API)
- ASP.NET
-
- Bất kỳ phiên bản nào cũng được chấp nhận
- Máy chủ Windows
-
- Windows Server 2008 trở lên
- IIS
-
- 7.0 trở lên
Điều kiện tiên quyết
- ASP.NET ứng dụng Core được thiết kế để chạy trên IIS. Các máy chủ web khác sẽ không thể thực hiện nội dung của các mẹo này
môi trường
Nó được xác minh trong môi trường sau.
Mục đích sử dụng | PC và máy chủ |
---|---|
Windows 11 (Cục bộ) | Một môi trường để phát triển các chương trình. Không liên quan đến mục đích của bài viết này |
SV2022Thử nghiệm | Môi trường chạy IIS và ASP.NET Core. Truy cập thư mục chia sẻ SV2019Test từ đây |
SV2019Thử nghiệm | Máy chủ có thư mục dùng chung |
Ngoài ra, các cài đặt khác nhau như sau.
Giá trị | tên tham số |
---|---|
Truy cập tên người dùng | Người dùng đã chia sẻ |
Tên thư mục được chia sẻ | SharedFolder |
Tạo một chương trình để đọc và ghi tệp từ thư mục được chia sẻ từ ứng dụng ASP.NET Core
Là một Mr. / Ms. kéo, chỉ cần nhấp vào nút,
- Tải tệp trong thư mục được chia sẻ và hiển thị chúng trên màn hình
- Ghi tệp mới vào thư mục được chia sẻ
quá trình.
Tôi chưa tạo một thư mục được chia sẻ, vì vậy tôi không thể gỡ lỗi nó, nhưng đó là mã đơn giản, vì vậy tôi sẽ chỉ tạo một chương trình trong thời gian này.
ASP.NET Dự án cốt lõi có thể là bất kỳ loại nào, nhưng trong trường hợp này, tôi đang sử dụng Razor Pages.
Index.cshtml.cs
và thêm những gì sẽ xảy ra khi nút được nhấp.
Tên máy chủ được viết trực tiếp, nhưng vui lòng điều chỉnh nó tốt trong hoạt động thực tế.
Trong một số trường hợp, thư mục được chia sẻ có thể không truy cập được, vì vậy nó được đặt trong một lần bắt thử.
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
có một nút và một thông điệp.
@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>
@* ここまで追加 *@
Khi bạn đã tạo chương trình, hãy tạo một tệp để triển khai lên máy chủ. Trong trường hợp này, chúng tôi sẽ sử dụng phương pháp đặt tệp đã xuất bản trực tiếp, nhưng không quan trọng bạn sử dụng phương pháp nào. Ngoài ra, việc sắp xếp chương trình không phải là bản chất của mẹo này, vì vậy nó được liệt kê một cách đơn giản.
Thêm cấu hình xuất bản.
Thay đổi cài đặt.
Các cài đặt được thay đổi như trong hình. Điều này cũng không đặc biệt liên quan đến mục đích của thời gian này, vì vậy hãy đặt nó theo môi trường của bạn.
Xuất bản chương trình.
Sau khi xuất bản chương trình, nhấp vào liên kết "Vị trí mục tiêu" và thư mục chứa các tệp bạn muốn đặt sẽ mở ra.
Xây dựng máy chủ thư mục dùng chung
Tạo người dùng
Thông thường, nếu máy chủ khác nhau, người dùng được tạo trên mỗi máy chủ được coi là một người dùng hoàn toàn khác nhau. Bằng cách tạo một tệp có cùng tên người dùng và mật khẩu, bạn có thể bỏ qua xác thực Windows sang máy chủ khác. Lần này chúng tôi sẽ sử dụng điều này để truy cập thư mục được chia sẻ trên một máy chủ khác.
Nhân tiện, nếu bạn đang xử lý các máy chủ và tài khoản trong một miền như Active Directory, bạn có thể thiết lập cả hai máy chủ với tài khoản đó, giúp đơn giản hóa cấu hình ở một mức độ nào đó.
Quy trình tạo người dùng không được mô tả chi tiết.
SharedUser
Trong trường hợp này, chúng ta sẽ tạo nó với tên .
Vì người dùng này không vận hành màn hình hoặc thay đổi cài đặt, mật khẩu không thể thay đổi.
Nếu bạn để mặc định, bạn có thể đăng nhập bằng người dùng này bằng Máy tính Từ xa, v.v., vì vậy vui lòng xóa khỏi nhóm Users
.
Tạo thư mục được chia sẻ
Không quan trọng bạn tạo nó ở đâu. Điều này là do các máy chủ khác không quan tâm đến vị trí của thư mục vật lý.
Trong trường hợp này, chúng tôi sẽ tạo một thư mục có tên trực tiếp dưới SharedFolder
ổ C và chia sẻ nó.
Mở các thuộc tính và định cấu hình cài đặt chia sẻ.
Tên của thư mục SharedFolder
được chia sẻ phải là . Tên này sẽ hiển thị cho các máy chủ khác.
Thêm SharedUser
quyền.
Everyone
Xóa tệp . hiện có
Xác nhận bằng quyền "Thay đổi".
Vì chúng tôi chỉ thêm các quyền có thể được truy cập từ bên ngoài, chúng tôi sẽ đặt nó bên trong SharedUser
để có thể hoạt động trong thư mục này.
Xác nhận bằng quyền "Thay đổi".
Tạo một tập tin để kiểm tra hoạt động.
Không sao nếu bạn có thể truy cập trong Explorer từ \\<サーバー名>\
một PC khác, đăng nhậpSharedUser
bằng , và xem tệp.
Xây dựng máy chủ ứng dụng
Cài đặt IIS
Hiện tại, hãy cài đặt nó theo mặc định từ trình quản lý máy chủ. Tôi sẽ không đi vào chi tiết của thủ tục.
Không có tính năng bổ sung được yêu cầu.
Không có dịch vụ IIS bổ sung được yêu cầu tại thời điểm này.
Cài đặt gói lưu trữ thời gian chạy lõi ASP.NET
Vì chúng tôi đang sử dụng ASP.NET Core 6, chúng tôi cần cài đặt thời gian chạy cho phù hợp. Tải xuống từ URL sau:
Để chạy ASP.NET Core trong IIS, bạn cần một thứ gọi là "Hosting Bundle". Tải xuống "Gói lưu trữ" từ ASP.NET Core Runtime.
Sau khi tải xuống, hãy chạy nó trên máy chủ.
Làm theo trình hướng dẫn để cài đặt nó.
Tạo và triển khai các ứng dụng web
Từ Công cụ Quản trị Windows, mở Trình quản lý Dịch vụ Thông tin Internet (IIS).
Bạn có thể sử dụng "Trang web mặc định" như hiện tại, nhưng lần này chúng tôi sẽ tạo một trang web mới. Trang Web Mặc định được tự động khởi động, vì vậy vui lòng dừng nó.
Tạo một trang Web mới.
Lần này, tên trang web là SharedFolderAccess
, nhưng nó không quan trọng.
Nhóm ứng dụng được tạo tự động cho trang web mới.
Tạo và chỉ định một thư mục bạn chọn nơi bạn muốn đặt chương trình.
Cổng 80 được dán nhãn "Trang web mặc định" và bạn sẽ thấy cảnh báo, nhưng bạn có thể bỏ qua nó nếu nó đã ngừng hoạt động.
Nó đã được tạo ra.
Mở thư mục được chỉ định trong trang Web trong Windows Explorer, sao chép và đặt tất cả các chương trình đã xuất bản như hiện tại.
Mở trang từ liên kết IIS và xem màn hình có xuất hiện không. Trước tiên, bạn có thể mở trình duyệt web và nhập URL trực tiếp.
Nhân tiện, ngay cả khi bạn nhấp vào nút ở trạng thái này, bạn sẽ gặp lỗi vì cài đặt quyền chưa được hoàn thành.
Tạo người dùng
Tạo cùng một người dùng SharedUser
trên máy chủ ứng dụng như trên máy chủ thư mục được chia sẻ. Đảm bảo mật khẩu của bạn cũng khớp. Các bước hoàn toàn giống nhau.
Thay đổi quyền đối với nhóm ứng dụng
Truy cập bằng các chương trình Web được xác định bởi nhóm ứng dụng.
Theo mặc định, nó chỉ ApplicationPoolIdentity
có các đặc quyền để chạy các ứng dụng web.
Bằng cách thay đổi đặc quyền này thành SharedUser
, chương trình web có thể hoạt động với các đặc quyền của người dùng mà bạn đã đặt.
Điều này cho phép các chương trình SharedUser
web truy cập các thư mục được chia sẻ trong .
Khi bạn mở trình quản lý IIS, chọn nhóm ứng dụng.
Có một tự động được thêm vào SharedFolderAccess
khi bạn tạo một trang web, vì vậy nhấp chuột phải vào nó và chọn "Nâng cao".
Có một "ID" trong mô hình quy trình, vì vậy hãy nhấp vào nút bên phải.
Chọn "Tài khoản tùy chỉnh" và nhấp vào nút "Cài đặt".
SharedUser
Nhập và xác nhận tên người dùng và mật khẩu của bạn.
Xác nhận hoạt động
Truy cập trang web và nhấp vào nút. Nếu nội dung của tệp văn bản được hiển thị, nó sẽ thành công.
Đảm bảo rằng bạn cũng có một tệp mới trong thư mục được chia sẻ.