在 Azure 上托管时找不到位于我的根项目文件夹中的文件
Posted
技术标签:
【中文标题】在 Azure 上托管时找不到位于我的根项目文件夹中的文件【英文标题】:Unable to find files located in my root project folder when hosted on Azure 【发布时间】:2020-06-09 09:21:13 【问题描述】:我试图在我的 Blazor Client WebAssembly 项目的根项目中查找文件。虽然它在我的计算机上本地执行时有效,但在 Azure 上托管时无效。
在本地执行时,我得到了 1
在 Azure 上执行时,我得到 0(没有访问被拒绝的错误)
为了更完整,我将需要一些文件来填充初始空白数据库。
如果我无法访问项目文件夹中的文件,那么我会选择 Blob Azure 存储。我想澄清一下,这只是我自己的一个测试项目。
【问题讨论】:
您正在应用程序的当前工作目录中查找文件,假设该目录与您的应用程序所在的目录相同。这可能是真的(VS 默认设置了这个),但它可能不是。您可以使用Path.GetDirectoryName(typeof(QuizController).Assembly.Location)
之类的方式获取包含您的应用程序的目录
我认为您可以使用 VS 中的 Cloud Explorer 浏览云中的文件。在最坏的情况下,您应该能够从 Cloud Explorer(或 Azure 门户)打开 Kudu 并检查那里的文件/文件夹层次结构。当然,最终您应该使用上面建议的@canton7 之类的通用方法,但这是更好地了解您所拥有的东西的好方法。这个link 可能会有所帮助。
感谢您的建议,我能够找到我的问题:我的某些文件未标记为“复制到输出目录”。非常感谢。
如果我的解决方案对这个问题有用,希望你能采纳,帮助更多的用户。Tks!
【参考方案1】:
此问题的原因是TextFile.txt
文件在发布时未包含在内。
Akos 说的没错。我正在修改.csproj
文件以发送我的答案。可以更好地帮助论坛的其他用户。
您可以将代码粘贴到您的 .csproj
文件中。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ResolvedFileToPublish Include="TextFile.txt">
<RelativePath>TextFile.txt</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Project>
然后您就可以部署您的应用了。你可以在D:\home\site\wwwroot>
下找到TextFile.txt
。
【讨论】:
以上是关于在 Azure 上托管时找不到位于我的根项目文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 discord.py 机器人在 Heroku 上托管时没有声音?
在 000webhost 上托管时无法使用 jwt 连接到 laravel api
在 Azure Devops 上运行构建时找不到资产文件 project.assets.json
在 Heroku 上托管时,Selenium 应用程序重定向到 Cloudflare 页面