Asp.net 5 исключение запуска веб-приложения после успешной публикации
У меня есть веб-приложение Asp.net 5, которое работает и отлично работает в разработке (из кода Visual Studio или VS я не могу запустить без проблем). Однако после успешной публикации приложения при попытке запустить веб-сайт с помощью "web.cmd" появляется следующая ошибка, которая предотвращает загрузку веб-сайта:
Application startup exception: System.IO.FileNotFoundException: Could not load file or assembly 'my-ng2-website' or one of its dependencies. The system cannot find the file specified.
File name: 'my-ng2-website' ---> System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
at System.Reflection.Assembly.LoadFile(String path)
at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadFile(String assemblyPath)
at Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext)
at Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.Load(AssemblyName assemblyName)
at Microsoft.Dnx.Host.LoaderContainer.Load(AssemblyName assemblyName)
at Microsoft.Dnx.Host.DefaultLoadContext.LoadAssembly(AssemblyName assemblyName)
at Microsoft.Dnx.Runtime.Loader.AssemblyLoaderCache.GetOrAdd(AssemblyName name, Func`2 factory)
at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadAssemblyImpl(AssemblyName assemblyName)
at Microsoft.Dnx.Runtime.Loader.LoadContext.ResolveAssembly(Object sender, ResolveEventArgs args)
at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Microsoft.AspNet.Hosting.Startup.StartupLoader.FindStartupType(String startupAssemblyName, IList`1 diagnosticMessages)
at Microsoft.AspNet.Hosting.Internal.HostingEngine.EnsureStartup()
at Microsoft.AspNet.Hosting.Internal.HostingEngine.EnsureApplicationServices()
at Microsoft.AspNet.Hosting.Internal.HostingEngine.BuildApplication()
Я искал решения все выше и ниже. Я не могу понять, какую зависимость мне не хватает. я пробовал
удаление package.lock.json
восстановление дну
Вот мой параметр конфигурации dnx для проекта:
Вот настройки для публикации:
Кто-нибудь может прочитать эти чайные листья?
3 ответа
Просто, черт возьми, я установил для "Компилировать исходные файлы в пакет Nuget" значение false. И теперь это работает.
Почему это работает, я не знаю. Но, надеюсь, это поможет кому-то еще.
Добрый день. У нас было несколько встреч с этим типом ошибки. Часто это указывает на отсутствующую сборку (наиболее распространенную). Проверка всех необходимых ссылок, установленная на Copy Local -> true, помогает большую часть времени. Поскольку сборки / ссылки не будут включены в публикацию, если для нее установлено значение Копировать локально -> false.
Надеюсь это поможет.
Эта ошибка имеет отношение к global.json
файл, расположенный в каталоге проекта (не один). Если вы хотите опубликовать проект с опцией компиляции, обязательно добавьте его в publishExclude
в вашем project.json
"publishExclude": [
"**.user",
"**.vspscc",
"global.json"
],