ASP.NET Core 응용 프로그램에서 다른 서버의 공유 폴더에 액세스(IIS, 응용 프로그램 풀 설정)

페이지 업데이트 :
페이지 생성 날짜 :

동작 검증 환경

비주얼 스튜디오
  • 비주얼 스튜디오 2022
ASP.NET 코어
  • 6 (Razpr 페이지)
윈도우 서버
  • 2022(ASP.NET 핵심 시스템 요구 사항)
  • 2019년(공유 폴더 배포 서버)
증권 시세 표시기
  • 10.0

운영 환경

모든 것을 테스트하지는 않았지만 대부분 작동해야 합니다.

비주얼 스튜디오
  • ASP.NET 또는 ASP.NET Core 프로젝트를 개발할 수 있는 모든 것
ASP.NET 코어
  • 모든 버전(MVC, Razor Pages, API)
ASP.NET
  • 모든 버전이 허용됩니다.
윈도우 서버
  • Windows Server 2008 이상
증권 시세 표시기
  • 7.0 이상

전제 조건

  • ASP.NET Core 애플리케이션은 IIS에서 실행하기 위한 것입니다. 다른 웹 서버는 이 팁의 내용을 구현할 수 없습니다

환경

다음 환경에서 확인됩니다.

PC 및 서버의 사용 목적
Windows 11(로컬) 프로그램 개발을 위한 환경입니다. 이 기사의 목적과 무관
SV2022테스트 IIS 및 ASP.NET Core를 실행하는 환경입니다. 여기에서 SV2019Test 공유 폴더에 액세스합니다.
SV2019테스트 공유 폴더가 있는 서버

또한 다양한 설정은 다음과 같습니다.

매개 변수 이름
액세스 사용자 이름 공유 사용자
공유 폴더 이름 공유 폴더

ASP.NET Core 응용 프로그램에서 공유 폴더의 파일을 읽고 쓰는 프로그램 만들기

Mr./Ms. 풀로 버튼을 클릭하기만 하면 됩니다.

  • 공유 폴더에 파일을 로드하고 화면에 표시
  • 공유 폴더에 새 파일 쓰기

프로세스.

공유 폴더는 아직 만들지 않았기 때문에 디버깅 할 수 없지만 간단한 코드이므로 일단 프로그램을 만들 뿐입니다.

ASP.NET Core 프로젝트는 모든 유형이 될 수 있지만이 경우에는 Razor Pages를 사용하고 있습니다.

Index.cshtml.cs 버튼을 클릭할 때 발생하는 작업을 추가합니다. 서버명은 직접 쓰여져 있습니다만, 실제 동작에서 잘 조정해 주세요. 경우에 따라 공유 폴더에 액세스할 수 없으므로 try-catch로 묶여 있습니다.

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 인증을 건너뛸 수 있습니다. 이번에는 다른 서버의 공유 폴더에 액세스하는 데 사용합니다.

그건 그렇고, Active Directory와 같은 도메인의 서버 및 계정을 처리하는 경우 해당 계정으로 두 서버를 모두 설정할 수 있으므로 구성이 어느 정도 단순화됩니다.

사용자를 만드는 절차는 자세히 설명하지 않습니다.

SharedUser 이 경우 이름으로 만듭니다. 이 사용자는 화면을 조작하거나 설정을 변경하지 않으므로 암호를 변경할 수 없습니다.

기본값을 그대로 두면 Remote Desktop 등으로 이 사용자로 로그인할 수 있으므로 그룹 Users 에서 제거하십시오.

공유 폴더 만들기

어디서 만드는지는 중요하지 않습니다. 이는 다른 서버가 실제 폴더의 위치를 신경 쓰지 않기 때문입니다. 이 경우 C 드라이브 바로 아래에 SharedFolder 이름이 지정된 폴더를 만들어 공유합니다.

속성을 열고 공유 설정을 구성합니다.

공유 폴더의 이름은 이어야 합니다 SharedFolder . 이 이름은 다른 서버에서 볼 수 있습니다. 권한을 추가합니다 SharedUser .

Everyone 기존 .

"변경" 권한으로 확인합니다.

외부에서 접근할 수 있는 권한만 추가했기 때문에 이 폴더에서 동작할 수 있도록 내부적으로 SharedUser 설정하겠습니다.

"변경" 권한으로 확인합니다.

작업을 확인할 파일을 만듭니다.

다른 PC에서 \\<サーバー名>\ Explorer에 접속하여 로 로그인SharedUser 하여 파일을 볼 수 있으면 OK입니다.

응용 프로그램 서버 구축

IIS 설치

당분간은 서버 매니저에서 기본적으로 설치합니다. 절차의 세부 사항은 다루지 않겠습니다.

추가 기능은 필요하지 않습니다.

현재로서는 추가 IIS 서비스가 필요하지 않습니다.

ASP.NET Core 런타임 호스팅 번들 설치

ASP.NET Core 6을 사용하고 있으므로 그에 따라 런타임을 설치해야 합니다. 다음 URL에서 다운로드하십시오.

IIS에서 ASP.NET Core를 실행하려면 "호스팅 번들"이라는 것이 필요합니다. ASP.NET Core 런타임에서 "호스팅 번들"을 다운로드합니다.

다운로드가 완료되면 서버에서 실행합니다.

마법사를 따라 설치합니다.

웹 응용 프로그램 만들기 및 배포

Windows 관리 도구에서 IIS(인터넷 정보 서비스) 관리자를 엽니다.

"기본 웹 사이트"를 그대로 사용할 수 있지만 이번에는 새로운 사이트를 만듭니다. 기본 웹 사이트가 자동으로 시작되므로 중지하십시오.

새 웹 사이트를 만듭니다.

이번에는 사이트 이름이 SharedFolderAccess 이지만 상관 없습니다.

응용 프로그램 풀은 새 사이트에 대해 자동으로 생성됩니다.

프로그램을 배치할 폴더를 만들고 지정합니다.

포트 80에는 "기본 웹 사이트"라는 레이블이 지정되고 경고가 표시되지만 이미 다운된 경우 무시할 수 있습니다.

창조되어 버렸습니다.

Windows 탐색기에서 웹 사이트에 지정된 폴더를 열고 게시된 모든 프로그램을 그대로 복사하여 배치합니다.

IIS 링크에서 페이지를 열고 화면이 나타나는지 확인합니다. 먼저 웹 브라우저를 열고 URL을 직접 입력할 수 있습니다.

덧붙여서, 이 상태에서 버튼을 클릭해도 아직 권한 설정이 완료되지 않았기 때문에 오류가 발생합니다.

사용자 만들기

응용 프로그램 서버에서 공유 폴더 서버와 동일한 사용자를 SharedUser 만듭니다. 비밀번호도 일치하는지 확인하십시오. 단계는 정확히 동일합니다.

응용 프로그램 풀 사용 권한 변경

웹 프로그램에서의 액세스는 응용 프로그램 풀에 의해 결정됩니다. 기본적으로 웹 응용 프로그램을 실행할 수 있는 권한만 ApplicationPoolIdentity 있습니다.

이 권한을 SharedUser 로 변경하면 웹 프로그램이 설정한 사용자의 권한으로 작동할 수 있습니다. 이렇게 하면 웹 프로그램이 SharedUser 의 공유 폴더에 액세스할 수 있습니다.

IIS 관리자를 열 때 응용 프로그램 풀을 선택합니다.

웹 사이트를 만들 때 자동으로 추가 SharedFolderAccess 되므로 마우스 오른쪽 버튼으로 클릭하고 "고급"을 선택하십시오.

프로세스 모델에 "ID"가 있으므로 오른쪽의 버튼을 클릭합니다.

"사용자 지정 계정"을 선택하고 "설정" 버튼을 클릭합니다.

SharedUser 사용자 이름과 비밀번호를 입력하고 확인합니다.

작동 확인

웹 페이지로 이동하여 버튼을 클릭하십시오. 텍스트 파일의 내용이 표시되면 성공한 것입니다.

공유 폴더에 새 파일도 있는지 확인합니다.