2015-11-21 4 views
6

Я пытаюсь запустить немодифицированное приложение Web Api, созданное yo aspnet.dnx kestrel "System.EntryPointNotFoundException: uv_loop_size"

Я получаю эту ошибку:

System.EntryPointNotFoundException: uv_loop_size 
    at (wrapper managed-to-native) Microsoft.AspNet.Server.Kestrel.Networking.Libuv+NativeDarwinMonoMethods:uv_loop_size() 
    at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.loop_size() <0x42615b8 + 0x00014> in <filename unknown>:0 
    at Microsoft.AspNet.Server.Kestrel.Networking.UvLoopHandle.Init (Microsoft.AspNet.Server.Kestrel.Networking.Libuv uv) <0x4261528 + 0x0002b> in <filename unknown>:0 
    at Microsoft.AspNet.Server.Kestrel.KestrelThread.ThreadStart (System.Object parameter) <0x4261160 + 0x0005f> in <filename unknown>:0 

Любые идеи?

DNVM Выходной список:

Active Version    Runtime Architecture OperatingSystem Alias 
------ -------    ------- ------------ --------------- ----- 
     1.0.0-rc1-final  coreclr x64   darwin   
     1.0.0-rc1-final  mono     linux/osx  
    * 1.0.0-rc2-16177  mono     linux/osx  default 

моно версия

Mono JIT compiler version 4.2.1 (explicit/6dd2d0d Tue Nov 10 18:01:18 EST 2015) 

Update

Я побежал

export DYLD_FALLBACK_LIBRARY_PATH=/Users/Andy/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/ 

который закончился тем самым дает мне другую ошибку при запуске DnX полотна:

System.DllNotFoundException: libc.dylib 
    at (wrapper managed-to-native) System.IO.KeventWatcher:kqueue() 
    at System.IO.KeventWatcher.GetInstance (IFileWatcher& watcher) <0x105a29310 + 0x000f3> in <filename unknown>:0 
    at System.IO.FileSystemWatcher.InitWatcher() <0x105a28fa0 + 0x0012c> in <filename unknown>:0 
    at System.IO.FileSystemWatcher..ctor (System.String path, System.String filter) <0x105a28d00 + 0x00114> in <filename unknown>:0 
    at System.IO.FileSystemWatcher..ctor (System.String path) <0x105a28cc0 + 0x00023> in <filename unknown>:0 
    at (wrapper remoting-invoke-with-check) System.IO.FileSystemWatcher:.ctor (string) 
    at Microsoft.AspNet.FileProviders.PhysicalFilesWatcher..ctor (System.String root) <0x105a285b0 + 0x00154> in <filename unknown>:0 
    at Microsoft.AspNet.FileProviders.PhysicalFileProvider..ctor (System.String root) <0x105a282d0 + 0x000e4> in <filename unknown>:0 
    at Microsoft.AspNet.Hosting.HostingEnvironmentExtensions.Initialize (IHostingEnvironment hostingEnvironment, System.String applicationBasePath, IConfiguration config) <0x105a27f20 + 0x001ea> in <filename unknown>:0 
    at Microsoft.AspNet.Hosting.WebHostBuilder.Build() <0x105a1a860 + 0x000b8> in <filename unknown>:0 
    at Microsoft.AspNet.Hosting.WebApplication.Run (System.Type startupType, System.String[] args) <0x105560990 + 0x00216> in <filename unknown>:0 
    at Microsoft.AspNet.Hosting.WebApplication.Run (System.String[] args) <0x10555fef0 + 0x0001a> in <filename unknown>:0 
    at Microsoft.AspNet.Hosting.Program.Main (System.String[] args) <0x10555fec0 + 0x00014> in <filename unknown>:0 
    at Microsoft.AspNet.Server.Kestrel.Program.Main (System.String[] args) <0x10555fc90 + 0x000b5> in <filename unknown>:0 
    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 
    at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x1050027a0 + 0x000b7> in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in <filename unknown>:line 0 
    at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) in <filename unknown>:line 0 
    at Microsoft.Dnx.ApplicationHost.Program+<>c__DisplayClass3_0.<ExecuteMain>b__0() in <filename unknown>:line 0 
    at System.Threading.Tasks.Task`1[TResult].InnerInvoke() in <filename unknown>:line 0 
    at System.Threading.Tasks.Task.Execute() in <filename unknown>:line 0 

Unhandled Exception: 
System.NullReferenceException: Object reference not set to an instance of an object 
    at System.IO.FileSystemWatcher.Stop() in <filename unknown>:line 0 
    at System.IO.FileSystemWatcher.Finalize() in <filename unknown>:line 0 
+0

Что касается вашего обновления: 'libc.dylib' находится в'/USR/lib', не уверен, что если у вас существующий " DYLD_FALLBACK_LIBRARY_PATH "set, 'export DYLD_FALLBACK_LIBRARY_PATH =/libuv/dir/locaation:/usr/lib: $ DYLD_FALLBACK_LIBRARY_PATH', поэтому вы не сбрасываете существующий DYLD_FALLBACK_LIBRARY_PATH env var ... – SushiHangover

+0

Я в той же ситуации, что и Andy (включая обновленная проблема). Я попробовал ваше предложение @RobertN добавить/usr/lib в env var, и я вернусь к исходной ошибке «uv_loop_size». Возможно, стоит отметить, что у меня не было этой проблемы с бета8. У меня только сейчас, что я обновился до rc1-final. –

+0

@KevinCraft, выйдите из потока комментариев из Pawel в ответном потоке ниже, так как загрузка родной библиотеки изменилась в RC-релизе @ http://blog.3d-logic.com/2015/11/10/using-native-libraries- in-asp-net-5/ – SushiHangover

ответ

0

После многих переустановок Mono, Visual Code, Xamarin Studio, DNX, libuv, обновление Node и RoberN дает мне некоторые ясные указатели, я решил, что должен проверить переменную env PATH. Конечно же, как только я добавил/usr/lib /:/usr/local/lib в свою PATH, все началось!

DNX веб

Hosting environment: Production 
Now listening on: http://localhost:5000 
Application started. Press Ctrl+C to shut down. 

Успех!

+0

Интересно ... '/ usr/lib /:/usr/local/lib для моего PATH', если это сработало, тогда MS делает очень нестандартное пробное исследование, но вам не нужно включать lib dirs в ваш ' execute' path ... – SushiHangover

+0

Опять же, если это работает, это должно быть сообщено как ошибка на платформах, отличных от Windows. – SushiHangover

+0

Я не слишком хорошо знаком с тем, что должно быть на моем пути или что не так, но да, это работает. Любая идея, как регистрировать доступ к файлу при запуске веб-сайта dnx, чтобы увидеть, где он на самом деле выглядит ala procmon на окнах? – AndyD

3

FYI: Это не mono связанных

Не находя libuv родную библиотеку через System.Net.Libuv сборки:

https://github.com/dotnet/corefxlab/blob/d76ebe8ab5ed058d3d6903939ab0e4ee4e19b773/src/System.Net.Libuv/src/System/Net/Libuv/Interop.cs

1) Заполните dnvm list -detailed, чтобы узнать о местоположении времени, в течение которого вы используете dnx, а именно

Active Version    Runtime Architecture OperatingSystem Alias Location 
------ -------    ------- ------------ --------------- ----- -------- 
     1.0.0-beta8   mono     linux/osx    ~/.dnx/runtimes 
     1.0.0-rc1-final  mono     linux/osx    ~/.dnx/runtimes 
    * 1.0.0-rc2-16177  mono     linux/osx  default ~/.dnx/runtimes 

2-й) Мои dnx Установок являются $HOME/.dnx/runtime (по умолчанию), так что я могу запустить find ~/.dnx/packages -name "libuv*"

/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta8/runtimes/osx/native/libuv.dylib 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta8/runtimes/win10-arm/native/libuv.dll 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta8/runtimes/win7-x64/native/libuv.dll 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta8/runtimes/win7-x86/native/libuv.dll 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/win10-arm/native/libuv.dll 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/win7-x64/native/libuv.dll 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/win7-x86/native/libuv.dll 

После того, как найти, где ваш libuv.dylib живет в вашей системе, вы можете установить окр , вар DYLD_FALLBACK_LIBRARY_PATH в этот каталог:

export DYLD_FALLBACK_LIBRARY_PATH=/your/libuv/directory/location:$DYLD_FALLBACK_LIBRARY_PATH 

Запустите dmvm CMD снова:

dnvm exec 1.0.0-rc2-16177 dnx web 

Примечание:

В OS-X libuv также доступна через brew @ стабильной версии 1.7.5 но я не пробовал, так как MS не управляет версиями libuv.dylib, поэтому я не уверен, что это custom version or not ... (?)

otool -L /Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib 
/Users/sushi/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib: 
    /Users/asplab/Documents/buildAgent/temp/buildTmp/fs-poll-5b0daf.out (compatibility version 0.0.0, current version 0.0.0) 
+0

Спасибо, это отличная информация. Сегодня я буду копать. – AndyD

+0

вы уверены, что это не DYLD_FALLBACK_LIBRARY_PATH, а не DYLIB_FALLBACK_LIBRARY_PATH? – AndyD

+0

@RobertN - Вы можете найти, какая версия поставляется с Kestrel здесь: https://github.com/aspnet/libuv-build/tree/dev/submodules. В настоящее время он равен 1.7.3 с фиксацией, которая заставляет несколько циклов работать в Windows (вклад нашей команды в libuv) – Pawel

0

В случае, если кто приходит сюда в поисках другого решения ...

Я попробовал все выше, в том числе несколько переустанавливает все и PATH обновления без успеха, и, наконец, перешел на CoreCLR согласно решению here и это, наконец, сработало!

dnvm install 1.0.0-rc1-update1 -r coreclr -arch x64 

dnvm use 1.0.0-rc1-update1 -r coreclr -arch x64 

dnvm list 

затем перейдите в свой проект и попробовать еще раз

dnx web 

 Смежные вопросы

  • Нет связанных вопросов^_^