【问题标题】:Getting HTTP ERROR 404 after publishing ASP.NET application in Azure App Service with Visual Studio 2017使用 Visual Studio 2017 在 Azure 应用服务中发布 ASP.NET 应用程序后出现 HTTP 错误 404
【发布时间】:2018-12-01 06:06:19
【问题描述】:

我在 ASP.NET Framework 4.6.1 中有一个应用程序,在使用 Visual Studio 2017(版本 15.7.27703.2035)在我的本地环境中运行时运行良好。

在服务器端,同一个应用程序显示 HTTP ERROR 404。

Screenshot on local environment

Screenshot on server environment

为了发布 ASP.NET 应用程序,我使用 Visual Studio 的发布工具并将所有内容部署在 Azure 的应用服务上。

Visual studio publish tool and project architecture

我尝试使用 FTP 部署而不是 Web 部署,但没有成功。我也尝试过手动使用 FileZilla,但没有成功。

在发布带有自定义库的项目时是否可能需要某种操作?


编辑

我知道的:

  1. dlls on server side 我实际上可以访问服务器端的 wwwroot 文件夹:这意味着我可以访问 js、css、图像等。但似乎控制器、视图和其他文件夹没有t 存在于服务器上..

  2. Libraries issus? 当我用海关库 CrmDatabaseManager、SysaidDatabaseManager 和 UserInterfaceLibrary 细分我的项目时,问题出现了。

  3. wwwroot inside wwwroot on server side wwwroot 文件夹包括服务器上的另一个 wwwroot 文件夹;第一个 wwwroot 文件夹包含所有 dll,其中还有另一个 wwwroot 文件夹,其中包含 css、js、图像等,但没有控制器或视图的迹象。

  4. 我是如何创建项目的 我创建了项目 GPRH this way使用基于.NET Framework的ASP.NET Core 2.0

【问题讨论】:

  • 是 ASP.NET Core 应用吗?
  • 在项目属性上,目标框架是.NET Framework 4.6.1。
  • 我不确定,但看看你的项目结构,它看起来像 .NET Core 应用程序。您检查过 GPRH 项目属性吗?
  • 将项目发布到Azure时,点击配置,确保目标框架为.net core app
  • 我在帖子中上传了一张新图片,其中介绍了我如何使用向导创建项目。事实上,我将项目创建为 ASP.NET Core 2.0,然后选择 .NET Framework 作为目标。使用基于 ASP.NET Core 的 ASP.NET Core 2.0 导致某些 nugget 包不兼容。实际上,GPRH 的目标框架是 .NET Framework 4.6.1,如属性所示。

标签: asp.net asp.net-mvc visual-studio azure azure-web-app-service


【解决方案1】:

事实证明,使用库拆分项目确实破坏了路径引用。

我对路径进行了硬编码,在主项目中没有任何问题。当我用库拆分项目时,导致错误 404。

要访问库中的文件,您需要先进行以下操作:

  1. 右键单击文件> 属性
  2. 构建操作上,选择始终 复制文件

然后在库上这样指定路径:

var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filePath = buildDir + @"\fileName.json";

using (StreamReader r = new StreamReader(filePath))
{
   // code here
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 2016-11-08
    • 2018-04-09
    相关资源
    最近更新 更多