MVC 6中缺少get_WebRootFileSystem方法?

3

我正在尝试使用以下代码将文件上传到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)
2个回答

1
这很可能是由于软件包版本不匹配或软件包版本与运行时版本不匹配所致。我会押注于前者。
请检查以下内容:
1. 应用程序使用相同的软件包版本(例如,所有软件包都以Beta2结尾)。您可以在VS中查看项目的引用节点来确认。 2. 运行时是来自相同的发布版本(例如Beta2)。您可以右键单击项目->属性并查看运行时版本来确认。
如果以上两种方法都无效,请在此处发布您的项目的project.json文件和RuntimeInfo middleware的输出,它将显示加载了哪些软件包。

我也遇到了这个问题,版本也匹配。我使用git获取了Mvc 6.0.0-beta2(zip文件也不行)。 - Ciantic

0

请确保您的所有软件包和 KRE 运行时目标与同一测试版版本相匹配,并关闭所有正在运行的应用服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接