2016-06-25 2 views
0

Asp.Net C#에서 Quartz.Net을 사용하여 작업을 예약하고 있습니다. 파일에 쓰고 싶습니다. MapPath없이 시도하면 (Hello world) 예상대로 파일에 쓰고 있습니다.ASP.NET 및 C에서 Quartz.net의지도 경로 #

내가 작성한 코드는 다음과 같습니다. 나는 HostingEnvironment.MapPathServer.MapPath을 시도했다. 단순히 내용을 쓰지 않고 파일을 쓰는 것입니다.

public void Execute(IJobExecutionContext context) 
{ 
    StreamWriter file = new StreamWriter("destination_actualPath\\hello1.txt", true); 
    file.WriteLine("Hello world " + Server.MapPath("../Data")); 
    file.Close(); 
} 

예이 폴더 Data은 내 프로젝트 디렉토리에 존재합니다. 이 함수는 IJob 클래스 안에 있습니다. 만약 내가 새로운 메소드 (execute를 제외하고)를 작성했다면 (hello world와 path) 파일에 쓰고 있다면,이 내용은이 Execute 메소드 안에 있다면 파일에 내용을 쓰지 않을 것이다.

+0

"작동하지 않음"은 적절한 문제 설명이 아닙니다. [ask]를 읽고 모든 관련 정보와 연구를 제공하십시오. 또한 웹 서버가 클라이언트의 데스크톱에 쓸 수 없다는 것을 알기를 바랍니다. 컴퓨터가 서버와 클라이언트로 동시에 작동하기 때문에 개발 중에 작동합니다. – CodeCaster

+0

바탕 화면에 쓰는 것이 문제가 아닙니다. 문제는 'Server.MapPath ("../ Data")'경로를 읽는 것입니다. –

+0

** 문제 **가 무엇인지 묻습니다. 무슨 일이 일어나기를 기대합니까? 실제로는 어떻게됩니까? – CodeCaster

답변

4

HttpContext

file2.WriteLine("Hello World " + System.Web.Hosting.HostingEnvironment.MapPath("~/Data"));

이 Quartz.net에서 허용되지 않습니다 시도, 그래서 우리는 대신 HostingEnvironment을 사용해야합니다. 여기서 우리는 일반적으로 ../가 아닌 ~을 사용하여 가상 경로를 참조합니다. 나는 이것이 당신의 실수라고 생각합니다.

-1

System.Web.Hosting.HostingEnvironment.MapPath 메서드를 사용할 수 있습니다.

+0

System.Web.Hosting.HostingEnvironment.MapPath 및 httpcontext.current.server.mappath를 모두 시도했습니다. –

+0

이 질문에 유용하지 않습니다. –