검색 쿼리에 Lucene.Net을 사용하는 ASP.NET MVC 사이트를 구축 중입니다. 나는 여기에 질문을 제대로 ASP.NET MVC 응용 프로그램에서 Lucene.Net 사용을 구성하는 방법에 대한 최고의 방법은 내 선언하는 것입니다 들었다 IndexWriter
과 같은 public static
, 그래서 될 수 있음을 다시 사용했다.
다음은 내 SearchController 상단에있는 몇 가지 코드입니다.
public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
으로 writer
정적이며, IndexLocation
정적이어야합니다. 따라서 컴파일러는 다음과 같은 오류를 발생시킵니다 Server.MapPath()
.
비 정적 필드, 메서드 또는 속성 ‘System.Web.Mvc.Controller.Server.get’에 대한 개체 참조가 필요합니다.
거기 는 Server.MapPath () 또는 정적 필드에서 비슷한을 사용하는 방법은 ? 이 오류를 어떻게 수정할 수 있습니까?
답변
시도 HostingEnvironment.MapPath
인 static
.
HostingEnvironment.MapPath
다음과 같은 값 을 반환하는 확인은이 SO 질문을 참조하십시오 Server.MapPath
. Server.MapPath와 HostingEnvironment.MapPath의 차이점은 무엇입니까?
답변
수업에서 전화해볼 수있을 것 같아요
System.Web.HttpContext.Current.Server.MapPath("~/SignatureImages/");
* —————- 정적 기능이 이미 표류 하여 질문 에 답변했기 때문에 미안합니다.
System.Web.Hosting.HostingEnvironment.MapPath("~/SignatureImages/");
최신 정보
사용하는 동안 예외가 발생했습니다. System.Web.Hosting.HostingEnvironment.MapPath("~/SignatureImages/");
예 : System.ArgumentException : 여기서 상대 가상 경로 ‘SignatureImages’는 허용되지 않습니다. System.Web.VirtualPath.FailIfRelativePath ()에서
솔루션 (정적 웹 메소드에서 테스트 됨)
System.Web.HttpContext.Current.Server.MapPath("~/SignatureImages/");
일했다