将内容文件添加到Web服务并从Web服务访问内容文件

时间:2017-03-28 20:12:42

标签: c# web-services output asmx

我想在我的Web应用程序/ Web服务的bin目录中包含一个XML文件。我在Visual Studio的项目中包含了bin文件夹并添加了该文件。我将其Build Action设置为" Content"并复制到输出目录到"始终复制"。当我的代码找到它时,我使用

string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
if (!dir.EndsWith(@"\")) dir += @"\";

获取目录并将其作为appPath返回,其中appPath是(非转义版本):

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\0c7655f\d4908928\assembly\dl3\5cf9fd67\fdc52284_ffa7d201\

然后我附上我的XML文件的文件名(其中string filename = "myXmlFile.xml")来读取它:

StreamReader reader = new StreamReader(appPath + filename);

但我在该行代码上遇到异常,它无法找到我的文件。我正在处理逃脱斜线的问题,所以不是那样的。当我检查路径指向的物理目录时,它没有被复制到该目录,这是异常的原因。那么如何让我的文件被复制到那里?

1 个答案:

答案 0 :(得分:1)

如何使用HostingEnvironment.ApplicationPhysicalPath

var dir = Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "bin\\filename.xml")

参见相关问题how to get the application path in asp.net?