Не удается запустить веб-приложение ASP.NET Core RC2 в IISExpress

Я создал новый проект ASP.NET Core Web Application (.NET Core) в VS2015. Он был построен без каких-либо проблем, поэтому я решил дать ему пробный прогон. Однако при запуске он забился и разбился со следующей ошибкой:

Exception thrown: 'System.AggregateException' in Microsoft.AspNetCore.Server.Kestrel.dll
The program '[11608] dotnet.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
The program '[15048] iisexpress.exe' has exited with code 0 (0x0).

Я ничего не вижу в журнале. Я попробовал отладить его, и все, что я узнал, это то, что он сломался во время метода WebHostBuilder.Run() в классе Program. Это часть рамки, поэтому я не смог получить гораздо больше.

Обратите внимание, что программа работает нормально при запуске с помощью команды dotnet run. Только IISExpress не работает.

Как мне отладить эту проблему?

Файл project.json находится ниже. (Он был сгенерирован Visual Studio, я ничего не менял.)

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final"
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

Обновление: я создал новый проект для выпуска RTM Core, и на этот раз он сработал.

Ответ 1

Я обновил RTM-версию ядра dotnet и создал новый проект с использованием новой версии. Я предполагаю, что это ошибка.

Ответ 2

Другая проблема заключается в том, что вы можете использовать старую версию фреймворка. Попытайтесь перейти к корневому (project.json) местоположению вашего проекта runnable и в типе Command Prompt:

dotnet run

Ответ 3

У меня была такая же проблема, как и вы. Для меня решение заключалось в том, чтобы закрыть VS2015, удалить файл project.lock.json и снова перезапустить VS. (project.lock.json будет сгенерировано автоматически)

Похоже, отладчик не может подключиться к приложению. В моем случае я добавил throw new Exception("..."); в первой строке функции public Startup(IHostingEnvironment env), и приложение просто замирает и не прерывает необработанное исключение, как ожидалось.

После того, как project.lock.json был восстановлен, отладчик снова работает отлично.

Ответ 4

Для тех, кто сталкивался с этим, у меня было то же самое поведение и сообщение об ошибке, как описано в вопросе.

По-видимому, существуют некоторые термины, которые не могут использоваться только как имя проекта, например web или app. (Я исправил переименование моего проекта на WebApp)

Уже было зарегистрировано как ошибка, и исправление будет включено в предстоящие выпуски.

К сожалению, после первого неудачного прогона переименования проекта недостаточно, чтобы заставить его работать, поскольку конфигурационный файл IIS Express хранит старую запись. Просто отредактируйте файл applicationhost.config, расположенный в [PROJECT_ROOT]\.vs\config\, и удалите элемент site с именем web или app, перезапустите VS и запустите его.

Надеюсь, что это поможет!

Ответ 5

У меня такая же ошибка, когда я запускаю свой проект (не используя IIS). После некоторого расследования я узнал, что URL-адрес сервера в appsettings.json(который используется в Configuration) был уже занят. Я изменил URL, и он работал хорошо. Надеюсь, это поможет кому-то!

Ответ 6

У меня была такая же ошибка. Решение оказалось, что мое приложение x64 было настроено как x86