닷넷 개발중 문의 드립니다.

안녕하세요.

현재 GITHUB 오픈소스를 이용하여 서비스를 구현 하고자 합니다.

ASP.NET으로 API서버가 개발 되어져 있으며, ASP.NET CORE 3.1로 개발 되어져 있어서

우분투에서 3.1에 맞춰서 서버를 맞춰 놓은 상태입니다.

소스를 올려놓고 dotnet watch run 을 이용하여 서버를 구동하면 서버가 동작을 하나,
POST, GET으로 파라메터를 넘기면 전부 정상적으로 동작 하지 않습니다.

DB를 혹시 불러오지 못하는가 싶어서 우선 DB동작 방법에 대해서 문의 남깁니다.
appsetting.json 파일에는
“DefaultConnection”:“Server=db;Database=hairdressing_project_db;User=dev_admin;Password=administrator;”
이렇게 작성 되어있습니다. 저기서 server를 서버 ip주소와 port를 넣어도 동일하게 에러가 나타나는데,
혹시 db 접근방식에 문제가 있는건가요?

1개의 좋아요

정확히 예외 메시지를 확인하시는게 좋습니다. 예외 메시지가 출럭되도록 설정을 바꾸신 후 확인 해보시겠어요?

1개의 좋아요

알려주신 내용만으로는 답변을 드리고 싶어도 단서가 없어 드릴 수가 없습니다.

예외 메시지가 없는 것 같은데 일단 콘솔에서 디버깅 코드라도 넣고 확인해보시겠어요?
아니면 프로젝트 빌드쪽에 있는 Clean Solution을 먼저 시도해보는 것도 방법일 것 같아요.

1개의 좋아요

답변 감사합니다. 현재 우분투 서버에서 돌리고 있으며, 예외처리에서 처음 돌렸을 경우 나타나는 부분은
using (var servicesScope = app.ApplicationServices.CreateScope())
{
var services = servicesScope.ServiceProvider;
var _authService = services.GetService();
string authToken = _authService.GetAuthToken(ctx.Request);

이 부분부터 처리가 되지 않아 발생 되는걸로 확인 됩니다.

DB연동에 문제가 있는듯 하여
dotnet tool install --global dotnet-ef --version 3.1.*
dotnet tool install --global dotnet-aspnet-codegenerator --version 3.1.*
명령어를 사용하여
dotnet ef dbcontext scaffold “Server=localhost;Database=hairdressing_project_db;User=dev_admin;Password=administrator;TreatTinyAsBoolean=true;” “Pomelo.EntityFrameworkCore.MySql” -o GeneratedModels -d
이렇게 넣었지만 기존에 csproj 파일이 있어서 그런지 에러 문구가 출력되네요.

닷넷은 한번도 써본적이 없어서 난감 하네요…

1개의 좋아요

답변 감사합니다.
위에 댓글 하나 남겨놓았습니다ㅠ

현재 비쥬얼스튜디오로 돌리고 있지 않고 우분투 서버에서 직접 돌리고 있어서요.
우분투에서 돌렸을때 csproj에 있는 패키지 내용들에 대해서 패키지도 전부 다시 설치 해주고 진행 해야 하는건가요?

1개의 좋아요

리눅스에서의 에러까지 처리하다보면 시간이 너무 많이 소요되므로 저 같은 경우는 우분투에 다이렉트로 배포하기 보다는 docker로 배포하고 있습니다.
프로젝트를 docker image로 빌드하신 후 docker로 운용하시는게 향후 작업이 편하실듯합니다.

로컬 윈도우에 docker 설치
로컬 docker에 portainer 설치
visual studio에서 docker로 빌드
우분투서버에 docker설치 + docker registry 설치 + docker-compose 설치
로컬 portainer에서 docker image push to docker registry 하신후 docker-compose로 운용하시면 개발환경이랑 별반다른것 없이 운용이 가능하실듯합니다.

1개의 좋아요

일단 환경을 바꿔보시는게 어떨까 합니다. 리눅스에 종속적인 기능이 없다면 윈도 개발 환경에서 동작이 가능할 것입니다. 구글링을 해보시면 예외 메시지를 다양한 방법으로 확인하실 수 있는 방법이 나와 있습니다. 대부분의 경우 예외 메시지에 어떤 문제인지가 정확히 표현되어 있습니다. 먼저 예외 메시지를 정확히 확인하시길 바래요.

그리고 결국에는 서비스 실행 환경을 @_jeonghwan 님이 말씀하신 것 처럼 도커 등을 이용해서 일치시키면 제현이 되고 예상이 되기 때문에 좋습니다.

1개의 좋아요