C# server.mappath为空

C# server.mappath为空,c#,asp.net,windows-services,C#,Asp.net,Windows Services,可能重复: 我的ASP.NET解决方案中有三个项目: 类库 web应用程序 windows服务 我的web应用程序中有一个包含XML文件的文件夹。类库函数中的XMLreader需要填充此XML文件。我补充说: var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings); 当从we应用程序调用此函数时,它会工作。 当从windows应用程序调用类库的

可能重复:

我的ASP.NET解决方案中有三个项目:

  • 类库
  • web应用程序
  • windows服务
我的web应用程序中有一个包含XML文件的文件夹。类库函数中的XMLreader需要填充此XML文件。我补充说:

var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings);
当从we应用程序调用此函数时,它会工作。 当从windows应用程序调用类库的这个函数时,我在HttpContext.Current.Server上得到null引用,因为它在windows应用程序中不可用。我不想给出硬代码路径,尽管它适用于windows和web应用程序。我可以使用一些“不”功能访问来自不同项目的文件或server.mappath的任何替代文件吗。请提出解决方案


感谢

最简单的解决方案可能是将xml文件的路径传递到该函数中,而不是使函数本身足够聪明来理解它-然后您的web应用程序可以使用HttpContext方法,Winforms应用程序将使用常规路径。WinForms或windows服务没有与MapPath方法等效的方法。

System.AppDomain.CurrentDomain.BaseDirectory应该可以做到这一点

获取 程序集解析程序用于探测 装配

四次问同一个基本问题不会改变这样一个事实:你不能使用Windows服务访问web应用程序路径,web应用程序也不会知道你的服务在哪里


使用配置文件定义数据的存储位置,并向两者提供相同的信息,或者使用其他存储方式存储数据,如具有发布位置的数据库

在2天内,同一用户第四次提出相同的问题。如果这确实是您第四次提出问题,请费心学习设置代码和列表的格式。停止提出相同的问题,并回答您当前的问题或