【问题标题】:Missing method get_WebRootFileSystem in mvc 6?mvc 6 中缺少方法 get_WebRootFileSystem?
【发布时间】:2015-04-02 18:34:31
【问题描述】:

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


    【解决方案1】:

    这主要是因为包版本或包版本与运行时版本不匹配。我会赌前者。

    检查以下内容:

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

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

    【讨论】:

    • 我也遇到了这个问题,而且版本确实匹配。我使用 git 获得了 Mvc 6.0.0-beta2(同样作为 zip 也不起作用)。
    【解决方案2】:

    确保您的所有包和 KRE 运行时都针对相同的 beta 版本并终止所有正在运行的应用程序服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-30
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 2016-04-02
      • 2018-12-06
      相关资源
      最近更新 更多