2011-06-11 8 views
-3

가능한 중복 :
HttpContext.Current.Server null는 Server.MapPath 널

내 ASP .NET 솔루션의 세 가지 프로젝트가 있습니다

  • 클래스 라이브러리
  • 웹을 응용 프로그램
  • Windows 서비스

XML 파일이있는 웹 응용 프로그램의 폴더가 있습니다. 클래스 라이브러리 함수의 XMLreader에이 XML 파일을 채워야합니다. 나는 이것을 다음과 같이 추가했다 :

var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings); 

이 함수는 우리가 응용 프로그램에서 호출하면 작동한다. Windows 응용 프로그램에서이 클래스 라이브러리 함수가 호출되면 Windows 응용 프로그램에서 사용할 수 없기 때문에 HttpContext.Current.Server에서 null 참조를 얻습니다. 하드 코드 경로를 제공하고 싶지 않지만 Windows와 웹 응용 프로그램 모두에서 작동합니다. 다른 프로젝트 또는 server.mappath의 다른 대체 파일에 액세스하려면 일부 기능을 사용할 수 있습니까? 솔루션

감사

+0

동일한 질문으로 동일한 질문이 2 번째로 4 번이나 나왔습니다. –

+0

이것이 네 번째 질문 일 경우 코드 및 목록 형식을 배우십시오. –

+1

동일한 질문을하고 현재 질문에 응답하지 마세요. http://stackoverflow.com/questions/6304532/httpcontext-current-server-null 또는 http : // stackoverflow.com/questions/6310344/httpcontext-current-server-mappath-alternative-in-windows-application 또는 http://stackoverflow.com/questions/6306992/file-path-using-c – keyboardP

답변

0

가장 간단한 해결 방법은 오히려 다음 웹 앱을 사용할 수 박살있는 HttpContext를 파악하기에 충분 자체가 영리한 기능을보다, 그 함수로 XML 파일의 경로를 통과하는 아마 제안하십시오 메서드를 사용하고 Winforms 앱은 일반 경로를 사용합니다. WinForms 또는 Windows 서비스에 대한 MapPath 메서드는 없습니다.

2

HttpContext.Current.Server.MapPath alternative in windows application

file path using C#

HttpContext.Current.Server null

웹 응용 프로그램의 경로에 액세스 Windows 서비스를 사용할 수 없다는 사실을 변경하지 않을 웹 앱은 서비스가 어디에 있는지 알지 못합니다.

구성 파일을 사용하여 데이터가 저장 될 위치를 정의하고 두 위치에 동일한 정보를 제공하거나 게시 된 위치가있는 데이터베이스와 같이 데이터에 다른 저장소를 사용하십시오.