我有一个Web API解决方案,其中包含一个包含配置文件的文件夹(请参阅此处显示配置文件的解决方案资源管理器的图像(
代码中的路径名为:
public const string CONFIGFILEPATH = "VTS_Data\Config.vts";
public const string BCSEQUENCEFILEPATH = "VTS_Data\BCSequenceNumber.xml";
public const string OPCCONFIGFILEPATH = "VTS_Data\OPCTagConfiguration.das";
应用程序始终从路径读取"C:Program Files (x86)IIS Express"
。如果我手动将VTS_Data文件夹放在此路径"C:Program Files (x86)IIS Express"
,该应用程序可以正常工作。
但是,它如何从实际预期的路径中获取配置?
此外,当它作为 IIS 站点托管时,VTS_Data文件夹需要存在于 IISExpress 文件夹中。
当我调试时,我尝试使用(HttpContext.Current.Server.MapPath(Constants.CONFIGFILEPATH))
从路径读取。 当我调试时,它指的是实际的物理路径,但即使文件存在,File.Exists
也会返回 false。
我已经完全控制了每个人,并确保文件不是只读的。
任何帮助将不胜感激。提前谢谢你
当我创建一个变量var baseDir = HttpContext.Current.Server.MapPath("~/VTS_Data")
并使用 var OPCConfigurationFilePath = Path.Combine(baseDir , OPCTagConfiguration.das);
它开始工作了。似乎以前它已经指向一个文件夹,并在里面搜索另一个同名的文件夹。例如,它不是指向文件夹名称/abc.txt,而是指向文件夹名称/文件夹名称/abc.txt