2011-06-11 41 views
-3

可能重复:
HttpContext.Current.Server null空使用Server.Mappath

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

  • 类库
  • 网络应用程序
  • 一个Windows服务

我有一个文件夹在我的Web应用程序与XML文件。来自类库函数的XMLreader需要用这个XML文件填充。我添加了这个:

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

当这个函数被我们的应用程序调用时,它的工作原理。 当从Windows应用程序调用类库的这个函数时,我在HttpContext.Current.Server上得到空引用,因为它在Windows应用程序中不可用。虽然这对于Windows和Web应用程序都适用,但我不想给硬编码路径。我可以使用某些功能来访问来自不同项目或server.mappath的备用文件的文件。请建议的解决方案

感谢

+0

第四次同一个用户在两天内提出的问题。 – 2011-06-11 01:12:00

+0

如果这确实是你问的问题是第四次,请费心学习格式代码和列表。 – 2011-06-11 01:14:58

+1

停止问同样的问题并回复您目前使用的http://stackoverflow.com/questions/6304532/httpcontext-current-server-null或http://计算器。com/questions/6310344/httpcontext-current-server-mappath-alternative-in-windows-application or http://stackoverflow.com/questions/6306992/file-path-using-c – keyboardP 2011-06-11 01:16:35

回答

0

最简单的解决方案可能是路径传递到XML文件插入功能,而不是使函数本身足够聪明的它OUT-那么你的Web应用程序可以使用的HttpContext方法,并且Winforms应用程序将使用常规路径。 WinForms或Windows服务没有相应的MapPath方法。

2

HttpContext.Current.Server.MapPath alternative in windows application

file path using C#

HttpContext.Current.Server null

问同样的基本问题四个不同的时间是不会改变的事实,你不能使用一个Windows服务来访问Web应用程序的路径而网络应用程序不会知道你的服务在哪里。

使用配置文件来定义您的数据将被存储并提供两个相同的信息 - 或者使用一些其他的存储空间来保存数据,如其中有一个发布位置的数据库。