我正在建立一个ASP.NET MVC网站,在其中使用Lucene.Net进行搜索查询。我asked a question here讨论如何在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()的以下错误:



是否有使用Server.MapPath()或静态字段中类似的方法?如何解决此错误?

最佳答案

尝试 HostingEnvironment.MapPath ,它是static

请参阅此SO问题以确认HostingEnvironment.MapPath返回的值与Server.MapPath相同:What is the difference between Server.MapPath and HostingEnvironment.MapPath?

关于c# - 在ASP.NET MVC的静态字段内使用Server.MapPath(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3795986/

10-10 21:41