2010-03-05 6 views
0

VB.net Windows 서비스가 있으며 응용 프로그램의 동일한 디렉토리에있는 XML 파일을 사용하고 있습니다..Net Windows 서비스가 파일에 액세스 할 수 없습니다.

서비스를 시작했지만 서비스가 시작될 때 xml 파일을 찾을 수 없습니다. 웹 서비스에 XML 파일을 포함하려면 어떻게해야합니까?

파일을 exe 및 app.config 파일과 동일한 폴더에 복사해도 여전히 파일을 찾을 수 없습니다.

+0

서비스가 XML 파일을 '찾으려면'어떻게합니까? – Sam

답변

2

다른 종류의 응용 프로그램과 마찬가지로 Windows 서비스는 경로를 통해 파일을 찾습니다. 경로가 절대 경로가 아닌 경우 현재 디렉토리 경로는 파일 검색의 일부입니다.

현재 디렉토리가 무엇인지 확인해야합니다. 디스플레이 System.Environment.CurrentDirectory을보고 값이 무엇인지 확인하십시오.

using System.IO; 
using System.Reflection; 
. 
. 
. 
string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); 
string fileName = Path.Join(path, "my_xml_file.xml"); 

을 그리고 시도하고 파일 이름을 엽니 다

+0

신속한 답변을 보내 주셔서 감사합니다. john – acadia

0

이보십시오.

찾을 수 있습니까?

0

Windows 서비스의 경우 SvcHost.exe 응용 프로그램을 통해 실행되므로 Windows 서비스는 해당 응용 프로그램의 컨텍스트를 기반으로합니다. 대신 경로 이런 식으로 내놓고보십시오 : 당신이 디렉토리를 추출하고 다음에 XML 파일 이름을 결합 할 수있는 서비스 EXE 파일의 전체 경로를 얻어야한다

private string GetPath() 
{ 
    Assembly asm = Assembly.GetAssembly(typeof(MyClass)); 
    return asm.Location; 
} 

.

관련 문제