server.mappath null

本文关键字:null mappath server | 更新日期: 2023-09-27 17:59:05

可能重复:
HttpContext。现在的服务器空

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

  • 类库
  • web应用程序
  • windows服务

我的web应用程序中有一个包含XML文件的文件夹。类库函数中的XMLreader需要用这个XML文件填充。我添加了这个:

var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings);

当从we应用程序调用此函数时,它会工作。当从windows应用程序调用类库的这个函数时,我在HttpContext中得到了null引用。现在的服务器,因为它在windows应用程序中不可用。我不想给出硬编码路径,尽管这对windows和web应用程序都有效。我可以使用一些不起作用的功能来访问来自不同项目或任何替代服务器的文件吗?mapath。请建议解决方案

感谢

server.mappath null

System.AppDomain.CurrentDomain.BaseDirectory应该能做到这一点。

http://msdn.microsoft.com/en-us/library/system.appdomain.basedirectory.aspx

获取程序集解析程序用于探测组件。

HttpContext。现在的服务器windows应用程序中的MapPath替代方案

使用C#的文件路径

HttpContext。现在的服务器空

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

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

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