C# 如何在WebMethod内部获取项目中包含的Xml文件路径

C# 如何在WebMethod内部获取项目中包含的Xml文件路径,c#,asp.net,ajax,C#,Asp.net,Ajax,我正在对一个静态WebMethod进行ajax调用&需要访问web页面路径服务器.MapPath 但由于实例变量在静态方法中是不可访问的。我们无法在WebMethod中使用页面属性。 [WebMethod] public static string GetLogs() { //Can't use Server.MapPath("Resource.xml"); } 此外,由于这是一个AJAX调用,因此无法使用其他解决方法,如存储服务器。在页面加载等过程中,MapPath导致

我正在对一个静态WebMethod进行ajax调用&需要访问web页面路径<代码>服务器.MapPath

但由于实例变量在静态方法中是不可访问的。我们无法在
WebMethod中使用页面属性。

[WebMethod]
public static string GetLogs()
{        
   //Can't use Server.MapPath("Resource.xml");
}
此外,由于这是一个AJAX调用,因此无法使用其他解决方法,如存储
服务器。在页面加载等过程中,MapPath
导致用户定义的属性不起作用

我发现这是一个不可避免的问题,迟早我会需要访问WebMethod中的页面实例变量,但在AJAX调用期间无法访问它们


解决此问题的方法是什么?

您应该能够通过以下方式使用Server.MapPath的静态实例:

using System.Web;
[WebMethod]
public static string GetLogs()
{        
    string resource = HttpContext.Current.Server.MapPath("Resource.xml");
}

为什么这是一种静态方法?您是否尝试在
应用程序中使用过。像'Application[“ResourceUrl”]`.@DavidKemp:ASPX
页面中标记为
WebMethod
的方法必须是静态的(不同于
ASMX
)@DavidKemp-WebMethod必须是静态的,以便在ajax调用期间我们可以直接调用page/MethodName。@saravanan应用程序也是在page类中定义的属性!!