0

我有一个共享 dll,它有一个应用程序配置设置来引用 html 正文的位置。该服务接受变量并替换 html 正文中的字符串。

dll 通过 ConfigurationManager 引用文件,如下所示:

File.ReadAllText(ConfigurationManager.AppSettings["HtmlBodyLocation"]);

我的应用设置如下:

<add key="HtmlBodyLocation" value="Services/Assets/HtmlEmail.html" />

当我通过 WebAPI 项目使用此 dll 时,出现找不到文件的错误(当前错误是我仍在通过 IIS Express 对其进行测试):

找不到路径“C:\Program Files (x86)\IIS Express\Services\Assets\HtmlEmail.html”的一部分

如何在我的 API 服务器上配置应用程序设置以访问此文件?

4

1 回答 1

0

将您的配置检索到的值传递给HostingEnvironment.MapPath

string location = ConfigurationManager.AppSettings["HtmlBodyLocation"])
var data = File.ReadAllText(HostingEnvironment.MapPath(location));

这会将相对于 webapi 应用程序根目录的部分路径映射到目标机器上的物理路径

此外,您可能需要将存储在配置中的路径更改为

<add key="HtmlBodyLocation" value="~/Services/Assets/HtmlEmail.html" />
于 2019-11-27T00:01:34.997 回答