엔트리 프레임웍(Entity Framework)에서 Mysql에 'Insert'시 기본 키(primary key, PK)와 외래 키(foreign key, FK)가 한 컬럼에 걸려있을 경우 발생하는 오류 입니다. ERROR MESSAGE : ReferentialConstraint의 종속 속성이 저장소 생성 열에 매핑됩니다. 열: '[컬럼 이름]'. 1. 해결 방법 해당 컬럼의 'StoreGeneratedPattern'속성을 'None'로 바꿔주면 됩니다. '.edmx'를 생성하였으면 UI에서도 수정은 가능한데..... UI에서 수정한 내용은 적용이 되질 않습니다 -_-;;; 2. XML 편집기 이용 XML로 접근하여 변경해주어야 합니다. '.edmx'파일에서 오른쪽 클릭 > 다른 프로그램 연결 > XML..
우분투를 처음 설치하면 SSH가 설치되어 있지 않습니다. 우분투 GUI에서 작업할 수 있는 상황이면 그냥 작업하면 되지만 GUI작업이 힘들면 결국 SSH로 붙어서 작업해야 하니 SSH 서버를 설치하고 세팅해봅시다. 1. SSH Server 설치 터미널을 열고 아래 명령어를 입력하여 SSH Server를 설치합니다. sudo apt-get install openssh-server 설치가 끝났습니다. 아래 명령어로 ip를 확인합니다. ifconfig PuTTY 같은 SSH접속 프로그램을 이용하여 접속해 봅시다. 기본 포트는 22번입니다. 아이디와 비밀번호는 설치할 때 만들었던 계정을 사용하면 됩니다. 2. 접속 포트 변경 보안 문제가 걱정되면 포트를 변경해 봅시다. 파일의 경로는 "/etc/ssh/sshd_..
보안 문제 때문에 9.0부터는 'http'를 기본 지원하지 않습니다. 권한을 수정하여 'http' 사이트도 볼 수 있도록 해봅시다. 0. 테스트 환경 만들기 자마린 크로스 플랫폼 프로젝트를 생성하고 'MainPage.xaml'을 아래와 같이 작성합니다. 'MainPage.xaml.cs'의 생성자를 아래와 같이 작성해 줍니다. public MainPage() { InitializeComponent(); wvMain.Source = new UrlWebViewSource { Url = "http://google.com", }; wvMain.VerticalOptions = LayoutOptions.FillAndExpand; } 이제 테스트를 해보면 구글이 뜨지 않는 것을 알 수 있습니다. 1. 권한 추가 'ht..
"NSAppTransportSecurity"를 추가하면 다음 에러가 납니다. Invalid architecture: i386. 32-bit architectures are not supported when deployment target is 11 or later. 잘못된 아키텍처 : i386. 32 비트 아키텍처는 배포 대상이 11 이상인 경우 지원되지 않습니다. 1. 원인 iOS11부터는 32bit를 지원하지 않는다고 합니다. 2. 해결 방법 몇 가지 해결방법이 있는데 제가 성공한 방법은 최소 버전을 지정해 주는 것이었습니다. 2-1. 최소 버전 지정 'Info.plist'파일을 수정하여 최소 버전을 8.0으로 지정해주는 방법입니다. 그런데 그냥 'Info.plist'파일을 열면 강제로 'iOS 매니..
자마린으로 웹뷰넣고 돌렸는데 하얀 화면만 나오네? 1. 웹뷰 넣기 자마린에 웹뷰를 넣는 건 쉽습니다. (디자이너가 없어서 그렇지 -_-;;) 자말(.xaml)파일을 열고 스텍레이아웃(StackLayout)에 다음 코드를 추가합니다. 하지만 웹뷰만 생성될 뿐 이동은 되지 않습니다. 'Source'속성이 자마린의 낮은 버전에서 사용되던 속성이라 동작하지 않습니다. 자마린 도큐먼트를 보면 될 거 같은데 말이죠.... (참고 : Xamarin Guides - WebView) 2. 비하인드 코드로 넣기 위 방법이 왜 안되는지는 모르겠지만 일단 동적으로 추가하면 해결됩니다. 생성자에 다음 코드를 넣습니다. WebView webView = new WebView { Source = new UrlWebViewSource..
error MSB6006: "java.exe" has ended 이 오류는 자마린에서는 빌드가 됐는데 자바 쪽 빌드가 실패한 경우 나오는 에러입니다. 여러 가지 원인이 있지만 메시지는 이거 하나로 퉁치는 경우가 많아서 그때그때 찾아서 해결하는 방법뿐이 없습니다. 1. 증상 제 경우 자마린으로 Firebase 샘플을 따라 만들던 중 이 에러가 발생 했습니다. 처음부터 나는 건 아니고 'google-services.json'을 프로젝트에 첨부하고 빌드를 하면 이런 증상이 나왔습니다. 메시지도 아래와 같이 나옵니다. 이름은 '$' 문자, 16진수 값 0x24(으)로 시작할 수 없습니다. 내용만 보면 네이밍을 잘못했다는 뜻인데 구글에서 제공되는 라이브러리로 빌드되는 파일에서 나는 경고라 답이 없습니다. 그리고 ..
정상적으로 잘 배포되던 프로젝트인데 어느 날 갑자기 배포하고 나면 502.5에러가 납니다. 로컬은 여전히 잘됩니다. HTTP Error 502.5 - Process Failure 1. 자세한 오류 내용 확인 502 오류는 원래 서버가 잘못된 응답을 받았다는 의미입니다. 하지만 502가 나는 원인은 다양합니다. 해결방법도 엄청 많습니다. 문제는 원인을 모르면 결국 될 때까지 해봐야 한다는 것입니다. 그래서 서버의 이벤트 뷰어(event viewer)를 확인해 봤습니다. 이벤트 뷰어의 내용에서 중요한 건 "failed to start process with commandline 'dotnet" 이것뿐입니다. 'dotnet' 프로세스를 시작하는 것이 실패했다고 합니다. 왜? 도대체 왜? 이 에러는 보통 권한이..
이게 되다 안되다 해서 확신은 못 하겠지만 설치하는 순서나 에뮬레이터의 설정에 따라서 되다 말다 하는 것 같습니다. 일단 제가 여러 번 해서 매번 되던 방법을 정리해 보겠습니다. (참고 : Cheesy bits and bobs - Installing gapps in Visual Studio Android Emulator (Marshmallow)) 참고로 똑같은 순서로 설치하셔야 합니다. * 안드로이드 버전은 마시멜로(Marshmallow API 23) 기준입니다. * 1. 에뮬레이터 생성 에뮬레이터를 생성합니다. 생성한 에뮬레이터가 잘 동작하는지 확인해 봅시다. 2. 플래이 스토어(gapps)다운로드 아래 링크를 클릭하여 'gapps-L-4-21-15.zip'파일을 받습니다. 참고 : android fi..
비주얼 스튜디오 에뮬레이터(Visual Studio Emulator)는 하이퍼v(Hyper-V)여서 하이퍼v 네트워크 설정을 해주면 인터넷이 됩니다. 1. 가상 스위치 추가 하이퍼v(Hyper-V) 관리자 > 작업 > 가상 스위치 관리자 로 들어갑니다. '새 가상 네트워크 스위치'를 선택하고 '스위치 유형'을 외부로 해두고 '가상 스위치 만들어 줍니다. '외부 네트워크'에 사용하려는 하드웨어의 선택해 줍니다. 이렇게 하면 가상 스위치는 설정되었습니다. 이제부터 환경에 따라 내부 네트워크를 사용할 수 없을 수 있습니다. 2. 가상 컴퓨터에 네트워크 어댑터 추가 이제 에뮬레이터에 생성한 네트워크 어댑터를 추가하겠습니다. 생성된 에뮬레이터를 오른쪽 클릭으로 선택한 후 '설정'을 클릭해 줍니다. '하드웨어 추가..
자마린에서 웹뷰를 이용한 웹앱을 만들던 중 재미있는 글을 발견했습니다. 참고 : Xamarin Forums - What is the easiest way to call c# method from javascript in webview? 의 'Hunuman'님 답변 오홋? 자바스크립트로 임의 URL로 쏴주고 웹브라우저 컨트롤은 페이지 이동을 감지하여 알맞은 함수를 매개변수와 함께 호출해 주면 된다는 것입니다. * 이 글의 예제는 C#과 Xamarin로 되어 있습니다. * 1. 이 방법 써보기 이 방법의 큰 장점은 페이지 이동 전에 이벤트만 준다면 어떤 SDK건 어떤 플랫폼이건 하나의 함수를 이용할 수 있다는 것입니다. 단점은 웹앱이 아닐 때는 별도의 예외 처리를 해야 합니다. 그런데 이건 큰 단점이 아닌 ..