【发布时间】:2017-06-14 09:46:10
【问题描述】:
我一直在开发一个 ASP.NET Core Web 应用程序,主要基于 Visual Studio 2017 RC2 中提供的 MVC 模板。它在本地调试模式下运行得很好,但是当我尝试将其发布到 Azure 托管的 Web 应用程序时,我收到此错误:
启动应用程序时出错。
.NET Core X86 v4.1.1.0 | Microsoft.AspNetCore.Hosting 版本 1.1.0-rtm-22752 |微软视窗 6.2.9200
我试过在web.config文件中设置stdoutLogEnabled="true",但是好像没有效果,还是一样的错误。
更新:
在一些帮助下,我设法检索了日志,它说:
Application startup exception: System.TypeLoadException: Could not load type 'System.IO.File' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
at Microsoft.Extensions.DependencyModel.FileWrapper.OpenRead(String path)
at Microsoft.Extensions.DependencyModel.DependencyContextLoader.LoadEntryAssemblyContext(IDependencyContextReader reader)
at Microsoft.Extensions.DependencyModel.DependencyContextLoader.Load(Assembly assembly)
at Microsoft.Extensions.DependencyModel.DependencyContext.Load(Assembly assembly)
at Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider.DiscoverAssemblyParts(String entryPointAssemblyName)
at Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.GetApplicationPartManager(IServiceCollection services)
at Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore(IServiceCollection services)
at Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddMvc(IServiceCollection services)
at Bla.Api.Startup.ConfigureServices(IServiceCollection services) in C:\Users\user\Source\Workspaces\Bla\Bla.Api\src\Bla.Api\Startup.cs:line 73
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
Hosting environment: Production
Content root path: D:\home\site\wwwroot
Now listening on: http://localhost:1264
Application started. Press Ctrl+C to shut down.
它在第 73 行引用的代码行是:
services.AddMvc();
更新:
我的 global.json 文件如下所示(其中 Bla.Api 是项目的名称,该文件位于解决方案根文件夹中)。
{
"projects": [ "Bla.Api" ],
"sdk": {
"version": "1.1.0"
}
}
【问题讨论】:
-
您在 Azure 中运行的 .NET SDK 版本可能与在本地运行的版本不同。考虑将 global.json 文件添加到您的项目中,将 SDK 固定在特定版本。 docs.microsoft.com/en-us/dotnet/articles/core/tools/…
-
感谢肖恩的提示!我的模板没有附带 global.json 文件,所以我创建了一个并将它放在解决方案的根文件夹中。我为 SDK 尝试了几个不同的版本号(1.1.0 和 1.1.0-rtm-22752),但我认为它没有任何效果。没啥事儿。也许我错过了什么?
-
等等,我认为它成功了!重新创建一个新的 Azure Web App 就可以解决问题。新的错误是我缺少一个环境变量(因为它是一个新的网络应用程序,我还没有创建它)。我设置好之后就没事了。所以我对以前的网络应用程序以某种方式搞砸的假设是正确的,我想......无论如何,感谢大家的帮助!哇!
-
@derf26 我鼓励您花 20 分钟左右的时间输入自己的答案作为事后分析。对我来说这将是一本有趣的书,可以确切地知道出了什么问题。
-
我已经写了一个简短的总结,其中包括什么有效和无效,以及我学到了什么:) 再次感谢您的所有帮助。我很高兴它终于可以工作了:D
标签: c# .net azure model-view-controller asp.net-core