2013-06-18 4 views
0

하늘색 WCF 프로젝트에 문제가 있습니다. 프로젝트에 추가 할 XML 파일의 파일 경로를 가져 오려고합니다. < ->기존 항목>을 추가하십시오. 자사의 속성에서 "복사 더 최신"설정하고 하늘빛 서버에 배포 할 때이 파일은 bin에 올바르게 복사됩니다.하늘색 프로젝트의 파일 경로

1)이 하나의 에뮬레이터에서 로컬에만 노력하고 있습니다 :

string filePath = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), @"approot", @"bin", @"myFile.xml"); 

2)() 에뮬레이터와 푸른 어느 곳에서나 작동하지 않습니다 : 어쩌면

string appRoot = HttpContext.Current.Server.MapPath(@"~\"); 
string filePath = Path.Combine(appRoot + @"\", @"bin\myFile.xml"); 

내가 시도 사용 할 출력 디렉토리에 XML 파일을 추가하는 것보다 다른 방법이 있습니까? EmguCV를 사용 중이며 캐스케이드 XML 파일을로드하려고합니다.

답변

2

하늘빛은 특별한 것이 아닙니다! 그것은 단지 IIS입니다! 그래서 여러분이 지역에서 일하고 무엇을 하든지 Azure에서 일하게 될 것입니다 (일반적으로).

HttpContext.Current.Server.MapPath("~/bin/name_of_file.xml");을 사용해 보셨습니까?

또한 왜 Copy Local 속성을 설정 하시겠습니까? 솔루션에 XML을 추가하는 올바른 방법은 Build ActionContent으로, Copy to OutputDo not copy으로 만드는 것입니다. 그러면 Server.MapPath("~/name_of_file.xml") 만 OK입니다.

+1

하늘에서 HttpContext.Current.Server.MapPath가 작동하지 않습니다. –

+0

어떻게 결론에 도달 했습니까?! – astaykov

+0

ftp를 통해 웹 응용 프로그램에 액세스하면 거의 동일한 파일을 가진 두 개의 디렉토리 인 wwwroot 및 repository를 찾을 수 있습니다. 예외적으로 저장소는 공용 파일 만 포함하므로 코드의 일부 폴더에 파일을 저장하면 저장소에있는 파일을 찾을 수 없지만 wwwroot에서 찾을 수 있습니다. 그리고 MapPath가 저장소의 경로를 반환하기 때문에, 예를 들어 코드에서 저장된 파일을 참조하려고하면 오류가 발생합니다. –

관련 문제