我正在建立一个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/