【问题标题】:How to read an xml file from a WCF service?如何从 WCF 服务读取 xml 文件?
【发布时间】:2013-01-21 12:09:37
【问题描述】:

我想从 WCF 服务读取 xml 文件。 xml 文件 settings.xml 与服务 exe 位于同一文件夹中,并且该服务作为 Windows 服务托管。

当客户端访问服务时,服务 exe 正在查看 system32 文件夹并抛出未找到文件异常

C:\Windows\system32\Settings.xml

这是 try catch 块中的代码,并抛出了客户端捕获的 FaultException。

XmlSerializer serializer = new XmlSerializer(_appSettings.GetType());
            StreamReader sr = new StreamReader("Settings.xml", Encoding.UTF8);
            _appSettings = (SpecialityFinishingSettings)serializer.Deserialize(sr);
            sr.Close();

基本上我正在尝试读取 xml 并将其反序列化为可用于服务的对象。

如何从服务中读取此文件?

使用 InstallUtil.exe 安装服务

【问题讨论】:

  • 请发布一些代码,以便我们了解您要执行的操作。
  • 使用-System.AppDomain.CurrentDomain.BaseDirectory + "Settings.xml";

标签: wcf


【解决方案1】:

问题是“Settings.xml”未作为文件找到。您需要指定完整路径。您可以:

  • 使用绝对路径
  • 在配置文件中存储路径。此路径将是您从中打开文件的文件夹,然后可以将其附加到文件名中。
  • 按照 Anand 的建议获取应用运行的路径 (System.AppDomain.CurrentDomain.BaseDirectory + "Settings.xml";)

【讨论】: