2

我想从 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 安装服务

4

1 回答 1

2

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

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