繁体   English   中英

ASP.NET Web服务的本地和远程服务器上的输出目录路径

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM