[英]Output directory path both locally and on remote server for ASP.NET Web Service
我已经使用C#构建了一个ASP.NET RESTful服务项目。 我需要添加一些带有配置的自定义XML文件,我需要在运行时阅读并进行处理。
我将XML文件添加到我的项目中,并将属性“复制到输出目录”设置为“始终复制”。
要打开文件,我使用以下代码段:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "configuration.xml");
当我将项目发布到服务器时,这很好用,但是如果我在本地运行Web服务,则输出目录会更改,并且必须将bin
附加到路径的开头,例如:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin\\configuration.xml");
有没有办法为本地和远程服务器获取正确的输出目录?
您可以将属性Build Action设置为configuration.xml的“嵌入式资源”,然后可以使用Assembly.GetExecutingAssembly()。GetManifestResourceStream()访问文件
例如Assembly.GetExecutingAssembly()。GetManifestResourceStream(MyPRoject.configuration.xml)
您可以将文件保留在根项目文件夹(或某些子文件夹结构)中,并使用HttpServerUtility.MapPath()方法来解析文件的正确物理路径,而不是将文件复制到输出文件夹。服务器(本地和远程)。
因此,在您的方案中, HttpContext.Current.Server.MapPath("configuration.xml")
将返回C:\\MyWebApp\\configuration.xml
类的路径,您可以照常加载该路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.