asp.net - 如何将文件夹发布到 Azure 应用服务?
问题描述
我有一个 .Net Core 项目。作为我的数据库上下文类的一部分,我有一些种子数据要插入到数据库中。此种子数据从根目录中的 seed.json 文件反序列化,并在其中保存图像的路径。这些图像位于项目的一个文件夹中。在插入数据之前,我获取这些图像,将它们上传到 Azure 云存储,并更改指向那里的路径。这在当地很有效。
所以现在我将我的应用程序发布到 Azure App Service 并出现 FileNotFound 异常。它再也找不到项目中的图像。查看 Azure 的 Kudu 仪表板上的文件系统,我没有看到我的项目文件夹,而是一堆 .dll 和 .pdb 文件。我只能推测 Azure 可能将文件夹捆绑到 .dll 中?
我仍然可以很好地访问 wwwroot/images,但为了安全起见,我不想这样做。
我可以做些什么来将我的文件夹发布到他们的文件系统或访问我在他们的文件系统上的文件?
解决方案
您可能需要在 Program.cs 中设置项目工作目录。然后,您可以访问与 .dll 目录相关的文件。
var currentDir = Directory.GetCurrentDirectory();
config.SetBasePath(currentDir)
并且可能需要将 seed.json 和 images 文件夹复制到项目的输出中:
`<Content Include="seed.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="images/**/*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
`
希望它可以帮助戴夫
推荐阅读
- visual-studio-code - 如何将自定义坏词/禁止词列表添加到 Visual Studio Code
- python - Python - 从函数返回数据框和列表
- python - MatplotlibDeprecationWarning 向子图添加背景颜色时
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型 Node.JS
- powershell-5.0 - 如何使用扩展 Powershell 对象的方法返回引用值?
- reactjs - 使用 jwt 反应多个子域身份验证
- flutter - 如何在颤动中显示 Oauth 同意屏幕
- visual-studio - Nuget Packages 未在 .net 核心应用程序中安装任何内容
- ruby-on-rails - 未找到中央目录签名的 Zip 结尾
- excel - 如何从多个工作表中获取某些单元格值