2013-11-28 5 views
1

XmlTextReader 개체에 대한 XML.xml 파일을로드하는 클래스를 다른 프로젝트에 포함하고 있습니다. 그런 다음 다른 프로젝트 (웹 사이트)에서이 프로젝트를 사용하여 XML 파일을로드합니다. 그래서이 웹 사이트를 실행하면 C : \ Program Files (x86) \ IIS Express \ XML.xml에있는 XML.xml 파일을 찾을 수 없습니다. 거기에 새 파일을 만들 수 없으며 다른 웹 사이트에서 내 XML 파일을 찾으려면이 웹 사이트를 구성하는 방법을 알지 못합니다. 나는 Google을 많이 시도했지만 좋은 답변을 찾을 수가 없었다. 모든 빠른 수정 또는 무언가. 내 XMLObjectParser 내부 asp.netASP.NET 웹 응용 프로그램 can not가 내 XML 파일을 찾을 수 없습니다. IIS Express 폴더에는 없습니다.

protected void Page_Load(object sender, EventArgs e) 
    { 
     XMLObjectParser parseri = new XMLObjectParser("XML.xml"); 
     parseri.readFileAndSave(); 
     item = parseri.getItem(1); 

그리고 코드의 Heres는 코드

public XMLObjectParser(string file) 
    { 
     xmlreader = new XmlTextReader(file); 
     this.file = file; 

    } 

감사

+0

웹 응용 프로그램에 filepaths을 준비하기는 Server.MapPath를 사용하여 기억에

XMLObjectParser parseri = new XMLObjectParser(Server.MapPath("/APP_DATA/XML.xml")); 

더 많은 정보 같은 것을 사용하여 웹 사이트의 폴더 구조 내부의 폴더를 지정할 수 있습니다. 그건 그렇고, 약간의 코드가 문제를 이해하는 데 많은 도움이 될 수 있습니다. – Steve

+0

Server.MapPath를 사용하는 방법과 어디에 넣어야하는지 예제를 줄 수 있습니까? –

+0

[Server.MapPath] (http://msdn.microsoft.com/en-us/library/ms524632 (v = versus90) .aspx) XmlTextReader 개체에 파일 이름을 지정해야하는 경우 사용하십시오. 다시 말하지만 위 질문에 코드를 추가하면 (처리를 위해 파일을로드하는 코드) 완전한 대답을 작성하는 데 도움이 될 수 있습니다. – Steve

답변

4

귀하의 코드는 경로 이름을 지정하지 않고 파일을 열려고 시도합니다.
이 시나리오에서 파일의 결과 위치는 웹 사이트의 폴더가 아닌 IIS 프로세스 시작 디렉터리입니다.

웹 사이트 폴더의 파일을 찾으려면 Server.MapPath을 사용하십시오.
문서에서 설명했듯이 상대 경로를 설정하지 않으면 파일은 ASP 페이지에있는 것과 같은 폴더에 있다고 가정합니다. 파일이 호출 페이지에 현재 폴더의 상대에 위치 할 필요가있는 경우

그래서, 당신은

XMLObjectParser parseri = new XMLObjectParser(Server.MapPath("XML.xml")); 

을 작성할 수 있습니다.
당신은 Server.MapPath here

+1

Whoah that Server.MapPath ("XML.xml")); 일했다! 고마워요! –

+0

굉장히 효과가있었습니다. 엄청 고마워! – GandalfDGrey