c# - Azure 中的 ASP.NET Core 1.1 路由

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

应用程序(网络 API)在本地运行良好。但在 azure (应用程序服务)请求中,如 http://myapp.azurewebsites.net/api/values返回错误 404(您正在查找的资源已被删除、已更名或暂时不可用。)路由正在查找不存在的物理路径 D:\home\site\wwwroot\api\values。

在program.cs中:

var host = new WebHostBuilder()
            .UseKestrel()
            .UseUrls("http://myapp.azurewebsites.net")
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();

在startup.cs中:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvcCore(opts =>
         {
              opts.ModelBinderProviders.Insert(0, new CommaDelimitedArrayModelBinderProvider());
          });
    ...
}

网络配置:

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="flase" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>

更新: error details

更新2: 子错误代码为 0 (sc-substatus)。 sc-win32-status 为 2(未找到文件)。 我还启用了所有日志,查看了它们,但没有发现任何其他提示。 Kudu 远程执行控制台根本没有显示任何错误和请求证据。 iis error

更新3: api 的简短版本 https://drive.google.com/open?id=1TUCImJSmuCC1HJK-x95wg5VOUUEB96wZ

最佳答案

404错误有很多子状态代码,为了缩小范围,请找到子状态代码,您可以查看失败请求跟踪日志。

确保部署文件在 wwwroot 文件夹中可用。将 web.config 文件放在/site/wwwroot 目录下。

默认情况下,在 Azure WebApps 上,所有文件都与应用程序一起存储在文件系统中,包括媒体文件。请参阅文章azure 上的文件结构 - https://github.com/projectkudu/kudu/wiki/File-structure-on-azure了解 Azure WebApp 上的文件和目录集。

要在 Azure 门户中启用诊断,请转到 Web 应用的页面,然后单击“设置”>“诊断日志”。

此外,许多启动错误不会在应用程序事件日志中产生有用的信息。您可以在 Kudu 远程执行控制台中运行该应用程序来发现错误:查看本文档中提到的步骤:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/troubleshoot?view=aspnetcore-2.0#run-the-app-in-the-kudu-console

引用:https://learn.microsoft.com/en-us/azure/app-service/web-sites-enable-diagnostic-log

关于c# - Azure 中的 ASP.NET Core 1.1 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50372025/

相关文章:

wpf - Azure Clickonce 发布

c# - 通过 .NetCore SQLConnection 到 MariaDB localhost

c# - NGEN x86 与 x64 与 .NET 可执行文件

mysql - 使用 Lamp Stack 连接到 azure Linux 虚拟机中的 mysql 数据库

azure - 如何使用 Powershell 更改 Azure Function App 的 'always-on'?

c# - 在 AuthorizationHandler 中使用 `await`

c# - 如何修复 "The CORS protocol does not allow specifying a wildcard (any) origin and credentials at the same time"错误

xna - 这些 C# 功能对性能有何影响?

c# - 使用 System.IO.Compression 压缩完整文件夹

c# - 使用 WPF ClickOnce 手动检查更新