“无法找到路径的一部分”Azure应用程序中的文件读取操作错误

时间:2017-08-15 14:43:41

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

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

现在在我的本地系统上这很好用,因为它能够获得文件的确切文件路径,但是在云端,我得到一个例外,其中包含以下消息:

  

无法找到路径的一部分......

我得到完整的文件路径:

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

但这在云中失败了。在理解云部署中的目录结构方面,我是否应该知道有关部署此内容或我做错了什么?

N.B 我可以将此文件存储在Azure文件存储容器中,但我觉得阅读它会有太多麻烦,而且看到这个文件的成本会经常被读取。

1 个答案:

答案 0 :(得分:2)

  

无法找到路径的一部分......

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

enter image description here

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

enter image description here

我们可以获得有关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