2017-02-14 1 views
0

서비스 패브릭부터 시작하겠습니다. 서비스 패브릭에서 콘솔 응용 프로그램 호스팅

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("Hello world!"); 
     File.AppendAllText("c:\\temp\\hello.txt", "Hello world!" + DateTime.Now.ToString() + "\r\n"); 
     Console.ReadLine(); 
    } 
} 

가 그럼 난 비주얼 스튜디오와 게스트 실행 가능한 프로젝트를 생성하고 EXE 응용 프로그램을 가리 : 나는 다음과 같은 코드를 실행하는 매우 간단한 콘솔 응용 프로그램을 만들었습니다. 서비스 패브릭에 설치되면 파일이 생성되었지만 서비스 패브릭에서 오류가 발생합니다.

오류 이벤트 : SourceId = 'System.FM', Property = 'State'. 파티션이 대상 복제본 또는 인스턴스 수 아래에 있습니다. 직물 :

이 방법은 정확/테스트 3/Test3Service -1-1 5ef5a0eb 5621-4821-95cb-4c1920ab7f0c 는 (. 0. 복제본에서 사용 가능한 총 복제본 0 표시)? 서비스 패브릭에서 exe 응용 프로그램을 호스팅 할 수 있습니까? 아니면 구현/상속 할 필요가 있습니까?

편집 응용 프로그램은 다음과 같은 메시지를 보여주는 경고 상태에 진입 배포

: 곧 나중에는 오류 상태로 전환

Warning message

을 :

Error message

답변

2

예 서비스 실행 파일 (Service Exec)에서 간단한 콘솔 애플리케이션을 게스트 실행 파일로 호스팅 할 수 있습니다.

응용 프로그램이 게스트 Exe가 기본적으로 권한이없는 c:/temp에있는 파일에 쓰기를 시도하기 때문에 표시되는 문제 일 가능성이 높습니다. 샘플 코드의 해당 부분을 제거하거나 hello.txt로 변경하여 게스트 Exe가 실행중인 동일한 폴더로 끝납니다.

임시로 서비스 저장소 노드의 파일 저장소를 고려해야하며 서비스를 클러스터 유지 관리의 일부로 서비스 패브릭에 의해 노드간에 이동할 수 있으므로 데이터 저장에 의존하지 마십시오.

내가 파일에 기록되는 것을 볼 수 있습니다 SF https://stackoverflow.com/a/37966158/1062217

+0

에서 파일 시스템 액세스에 대한 좀 더 자세한 내용은이 대답을 참조하십시오. 콘솔 응용 프로그램은 실행되지만 서비스 패브릭은 오류로 표시합니다. Stateless 서비스 패브릭 응용 프로그램을 만들면 작동하지만 콘솔을 그대로 호스트하려고하므로 응용 프로그램을 서비스 패브릭 응용 프로그램으로 이식 할 필요가 없습니다. 문제가 무엇인지에 대한 정보를 찾을 수 없습니다. –

+1

서비스를 실행하려고 할 때 서비스 패브릭에 표시되는 오류는 무엇입니까? – yoape

+0

질문을 편집하고 내가 얻은 예외를 추가했습니다. –

관련 문제