通过服务在服务器上编辑XML

时间:2017-01-06 16:32:42

标签: c# xml winapi servicestack

目前,我有一个基于Web的C#应用​​程序(ServiceStack),它有一个XML文件,它依赖于生成客户端的东西。我不想再在客户端存储此文件。我需要一种方法来使用我编写的存储库来编辑存储在服务器上的文件。

我尝试了以下内容:

  • 在服务中查找XML的文件位置。 (它说服务当前目录是windows / system32,因为它作为服务运行。现在有意义。)
  • 将文件并排放在同一个项目中。 (同样的问题)

这已经奏效了:

  • 检索XML(使用硬编码路径:c)
  • 反序列化XML
  • 根据需要添加/删除XML
  • 保存

这个问题的关键是它必须存在于API所在的地方。我不认为我理解它的工作方式非常好,我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

使用System.Web.Hosting.HostingEnvironment.MapPath查找文件相对于您的应用程序的路径,假设它是通过IIS托管的。

答案 1 :(得分:1)

在ServiceStack中,您通常使用Virtual File System来解析文件,例如:

base.VirtualFileSources.GetFile("path/to/file.xml").ReadAllText()

否则,如果您只想要路径,可以使用v4.5.4到resolve a file path relative to your WepApp consistently in all App Hosts提供的IAppHost.MapProjectPath(),例如:

HostContext.AppHost.MapProjectPath("~/path/to/file.xml")