Programming

ASP.NET MVC의 정적 필드에서 Server.MapPath () 사용

procodes 2020. 7. 26. 13:55
반응형

ASP.NET MVC의 정적 필드에서 Server.MapPath () 사용


검색 쿼리에 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.MapPathstatic.

확인을 위해이 SO 질문 참조 HostingEnvironment.MapPath와 같은 값을 반환합니다 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/"); 일한

참고 URL : https://stackoverflow.com/questions/3795986/using-server-mappath-inside-a-static-field-in-asp-net-mvc

반응형