如何在Asp.net Core中获取文件路径以在Azure Dev Ops中工作

时间:2019-05-02 10:26:02

标签: asp.net-core path azure-devops

正在尝试读取文本文件内容。所以我在下面的代码行中使用它在本地工作。

 string src = @"Templates\UserMailTemplate.txt";
 string[] content = System.IO.File.ReadAllLines(src);

在Azure开发运营中托管后。出现问题 找不到文件“ D:\ home \ site \ wwwroot \ Templates \ UserMailTemplate.txt”。

Server.Mappath在ASP.Net Core中不起作用。

请让我知道如何在DEV ops中解决此问题。

1 个答案:

答案 0 :(得分:0)

问题的原因在于错误消息:Could not find file。这可能意味着该文件未发布,或者未在您期望的位置发布。

请确认您在寻找正确的位置。

要使文件在发布后可用,
1.看看IHostingEnvironment及其属性
2.将Build Action设置为Content,然后使用Application.GetContentStream
进行访问 3.将“构建操作”设置为Embedded Resource,然后调用Assembly.GetManifestResourceStream从程序集中读取文件
4.将Copy to Output Directory设置为Copy alwaysCopy if newer并访问输出目录中的文件

“略微”偏离主题
请看看在Azure中管理邮件模板的完全不同的方法。与您现在所做的最简单的更改可能是将它们存储在Azure Storage中。
如果您坚持使用文件,请参阅此Azure提示:Working with Files in Azure App Service