在mvc 6中缺少方法get_WebRootFileSystem?

问题描述 投票:3回答:2

我正在尝试使用以下代码将文件上传到MVC 6应用程序。

public void UploadFile(IEnumerable<IFormFile> files)
{
    foreach (var file in files)
    {
        var parsedContentDisposition = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
        using (var reader = new StreamReader(file.OpenReadStream()))
        {
            var fileContent = reader.ReadToEnd();
            var Filename = parsedContentDisposition.FileName;

        }
    }
}

我收到了以下错误。有什么帮助吗?我不知道如何解决这个问题。我也尝试了所有最新版本的Microsoft.AspNet.StaticFiles

System.TypeLoadException
Method 'get_WebRootFileSystem' in type 'Microsoft.AspNet.Hosting.HostingEnvironment' from assembly 'Microsoft.AspNet.Hosting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
at Microsoft.Framework.DependencyInjection.HostingServicesExtensions.AddHosting(IServiceCollection services, IConfiguration configuration) 
at Microsoft.AspNet.Hosting.HostingServices.Create(IServiceProvider fallbackServices, IConfiguration configuration) 
at Microsoft.AspNet.Loader.IIS.KlrHttpApplication.ApplicationStart(IHttpApplication application) 
at Microsoft.AspNet.Loader.IIS.HttpApplicationBase.InvokeApplicationStart(IHttpApplication application)
c# asp.net-core asp.net-core-mvc
2个回答
1
投票

由于软件包版本或软件包版本与运行时版本不匹配,因此这绝对是可靠的。我敢打赌前者。

检查以下内容:

  1. 该应用程序对所有包使用相同的版本(例如,所有包都以Beta2结尾)。您可以在VS中的项目引用节点中看到这一点。
  2. 运行时来自同一版本(例如Beta2)。您可以通过右键单击项目 - >属性来查看运行时版本。

如果这些都不起作用,请在这里发布项目的project.json文件和RuntimeInfo middleware的输出,它将准确显示加载的软件包。


0
投票

确保所有包和KRE运行时都针对相同的beta版本并终止所有正在运行的Application Server。

© www.soinside.com 2019 - 2024. All rights reserved.