Asp.net Azure上.Net 4.7应用程序的Myapp..runtimeconfig.json配置文件的适当内容

Asp.net Azure上.Net 4.7应用程序的Myapp..runtimeconfig.json配置文件的适当内容,asp.net,.net,azure,asp.net-core-mvc,azure-web-app-service,Asp.net,.net,Azure,Asp.net Core Mvc,Azure Web App Service,我是Azure新手,对一些事情有点困惑。我无法让我的MVC核心应用程序在上面正常工作 该应用程序是一个MVC.NETCore2.1应用程序,面向.NET4.7.2框架(不是.NETCore),具有相当复杂的依赖关系图 使用本地IIS Express,它可以完美地工作,当我使用Visual Studio在本地IIS实例(安装了AspNetCoreModule)上发布它时,它也可以工作 但当我尝试在Azure上发布它时,发布进展顺利,但应用程序在启动时失败(502.5,进程失败) 从Azure控制台

我是Azure新手,对一些事情有点困惑。我无法让我的MVC核心应用程序在上面正常工作

该应用程序是一个MVC.NETCore2.1应用程序,面向.NET4.7.2框架(不是.NETCore),具有相当复杂的依赖关系图

使用本地IIS Express,它可以完美地工作,当我使用Visual Studio在本地IIS实例(安装了AspNetCoreModule)上发布它时,它也可以工作

但当我尝试在Azure上发布它时,发布进展顺利,但应用程序在启动时失败(502.5,进程失败)

从Azure控制台启动EXE时,遇到以下错误:

遇到致命错误。需要使用库“hostpolicy.dll” 在“D:\home\site\wwwroot\”中找不到执行应用程序

无法作为自包含应用程序运行。如果这是一个 依赖于框架的应用程序,请在中指定相应的框架 D:\home\site\wwwroot\xxx.runtimeconfig.json

我手动添加了该文件,并且还尝试通过在项目中添加
true
使其由Visual Studio自动发布

它生成以下文件:

{
  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true,
      "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
    }
  }
}
但这并不能解决问题(完全相同的消息),它也不包含项目的.Net需求

因此,我尝试使用以下内容修改该文件

 {
  "runtimeOptions": {
      "framework": {
        "name": "Microsoft.NET",
        "version": "net472"
    },
    "configProperties": {
      "System.GC.Server": true,
      "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
    }
  }
 }
和一些变体(
“name”:“Microsoft.NETCore.App”,“version”:“2.1.2”
),但它失败了,出现了完全不同的错误

Unhandled Exception: System.TypeInitializationException: The type initializer for 'xxx.UI.Program' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Memory, Version=4.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at System.IO.DirectoryInfo.Init(String originalPath, String fullPath, String fileName, Boolean isNormalized)
   at NLog.Internal.AssemblyHelpers.GetAssemblyFileLocation(Assembly assembly)
   at NLog.LogFactory.GetDefaultCandidateConfigFilePaths()+MoveNext()
   at NLog.LogFactory.TryLoadFromFilePaths()
   at NLog.LogFactory.get_Configuration()
   at NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey)
   at NLog.LogFactory.GetLogger(String name)
   at NLog.LogManager.GetCurrentClassLogger()
   at xxx.UI.Program..cctor() in C:\xxx\xxx.UI\Program.cs:line 14
   --- End of inner exception stack trace ---
   at xxx.UI.Program.Main(String[] args) in C:\xxx\xxx.UI\Program.cs:line 28
如前所述,相同的应用程序在IIS中运行良好。“System.Memory”随EXE一起提供,在版本4.5.1(根据nuget)中没有问题


我无法在此文件中设置好的值,以便在Azure中托管MVC Core.Net 4.7应用程序,请提供帮助?谢谢

我最近在回答自己:根据团队中的某个人的说法,正如我们的测试所确认的,问题与“运行时”配置文件无关,它与配置文件中的连接字符串有关。 将其移到别处,应用程序将按预期启动

在这个问题上浪费了很多时间,很遗憾微软没有在错误信息方面处理得更好