2

您好目前正在从事 ac#/soap/php 项目。soap 服务有一个 config.xml,其中包含在soap 服务中使用的某些选项和使用soap 服务的c# 程序。

如果我将它放在某个位置而不是从配置文件所在的位置读取它,它正在读取配置。仅供参考,我的项目是在单声道和 windows 下的 Linux 上运行。

我的肥皂服务在 linux 上运行,/srv/www/htdocs/mywebsite/mysoapservice/Service.asmxconfig.xml 位于此目录中。

在 Windows 中c:\inetpub\wwwroot\mysoapservice\Service.asmx,config.xml 位于此目录中。

当我在配置中阅读时,我没有提供文件的路径,我只是给它一个文件名,config.xml期望检索 asmx 文件所在的文件。但是在 linux 上它试图从 root 获取它,即配置文件位于 /config.xml 并从那里读取,我不记得配置文件认为它应该是的确切路径,忘记记下它,但它在 PC 深处的某个地方,而不是我运行服务的地方。

我试过使用Directory.getCurrentDirectory() + "config.xml",但这不起作用,在 Linux 上似乎认为它是一个 unc 路径,我应该以 \server\share 的形式使用它,我不知道为什么它认为它是一个 unc 路径,不记得Windows上的错误。这将教会我不要在东西上做笔记。

我怎样才能让它从 asmx 文件所在的同一目录中读取配置文件。

感谢您的任何帮助,您可以提供。

4

1 回答 1

1

我相信你想做这样的事情:

  string applicationPath = HttpContext.Current.Server.MapPath(null);
  string configPath = Path.Combine(applicationPath, "config.xml");
于 2012-07-21T03:22:45.180 回答