【问题标题】:"Could not find a part of the path" Error For File Read Operation in Azure AppAzure 应用程序中的文件读取操作“找不到路径的一部分”错误
【发布时间】:2018-01-23 12:27:38
【问题描述】:

我构建了一个 ASP.NET Core api 应用程序,它部署到 Azure Web api 应用程序。 在代码中,我尝试在某个时间点读取内容根目录中文件的内容,为它们的实际值插入某些占位符。

现在在我的本地系统上这工作得很好,因为它能够获取文件的确切文件路径,但在云中,我收到以下消息的异常:

找不到路径的一部分...

我得到完整的文件路径如下:

Path.Combine(hostingEnvironment.ContentRootPath, "containing directory\filename")

但这在云中失败了。关于部署这个我应该知道什么额外的东西,或者我在理解云部署中的目录结构方面做错了什么?

注意 我可以将此文件存储在 Azure 文件存储容器中,但我觉得读取它会很麻烦,而且会经常读取此文件的成本。

【问题讨论】:

    标签: c# azure azure-web-app-service asp.net-core-1.1 azure-app-api


    【解决方案1】:

    找不到路径的一部分...

    根据异常,表示Azure中没有相关路径。如果可能的话,我们可以remote debug Azure Web Apps。然后我们可以得到文件路径。之后我们可以使用 Azure kudu(https://yoursite.scm.azurewebsites.net) 工具来检查路径是否存在。

    如果文件路径不存在,我们可以直接将文件夹拖到kudu工具中,也可以使用Visual Studio发布文件夹。之后它应该可以工作了。

    我们可以获得有关Azure Web App sandbox 的更多信息。关于Azure网站文件结构请参考document

    /
        LogFiles
            Application
                <instance>-<pid>-<ticks>.txt // application (nodejs/dotnet/php) traces
            DetailedError
                ErrorPage####.htm // error details
            Git
                trace
                    trace.xml // Trace generated during git deployments
                    <instance>-<guid>.txt // kudu related traces
                deployment
                    <instance>-<guid>.txt // deployment related traces
            http
                RawLogs
                    <logfile>.log     // iis http log. iis buffers and flushes every 60sec.
            W3SVC#####
                fr####.xml            // IIS fail request traces
                freb.xsl
        site
            wwwroot
                hello.htm             // The files that are live in your app
            repository                // Your repo, including working files (i.e. not bare)
                .git
                    HEAD, index and other git files
            deployments
                [commit id 1]
                    log.xml           // The deployment log, similar to what the protal shows
                    status.xml        // The status of the deployment (success/failure)
                    manifest          // The list of files that were deployed
                [commit id 2]
                    ...
        .ssh
            config                // This contains config to disable strict host checking
            id_rsa                // private key in PEM format
            known_hosts           // known hosts have been accepted
        Data
            Jobs
                Triggered
                    MyTriggeredJob1
                        20131112101559
                            output.log
                            error.log
                            status
    
                Continuous
                    MyContinuousJob1
                        job.log
                        status
        SiteExtensions
            // TODO: add details here
    

    【讨论】:

    • 非常详细的答案有助于突出和填补我知识库中的其他空白。我求助于 Azure 文件共享,但实施此处建议的一些方法帮助 10 亿人实现了我想要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2019-09-11
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多