Xamarin.Ma c https://localhost httplclient - PullRequest
0 голосов
/ 30 января 2020

У меня есть локальный webapi, для работы которого я использую собственный сертификат, подписанный на ap c. Я могу подключиться к webapi (написано в ядре net) с помощью браузера (https://localhost: порт / controller / method ), но когда я использую httpclient на Ma c ОС Mojave, я получаю исключение (работает High Sierra и Catalina).

System.DllNotFoundException: libc.dylib assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Net.NetworkInformation.CommonUnixIPGlobalProperties.getdomainname(byte[],int)
  at System.Net.NetworkInformation.CommonUnixIPGlobalProperties.get_DomainName () [0x0000b] in <4b9a7f543fd447a3be5e54f34ee219b2>:0 
  at System.Net.CookieContainer..ctor () [0x0003f] in <4b9a7f543fd447a3be5e54f34ee219b2>:0 
  at System.Net.Http.MonoWebRequestHandler.get_CookieContainer () [0x0000a] in <e45d721af82a41d98156aeda80e9ce53>:0 
  at System.Net.Http.MonoWebRequestHandler.CreateWebRequest (System.Net.Http.HttpRequestMessage request) [0x000f5] in <e45d721af82a41d98156aeda80e9ce53>:0 
  at System.Net.Http.MonoWebRequestHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x0003e] in <e45d721af82a41d98156aeda80e9ce53>:0 
  at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x000e8] in <e45d721af82a41d98156aeda80e9ce53>:0 
  at Mac_Installer.ViewController.Timer_Elapsed (System.Object sender, System.Timers.ElapsedEventArgs e) [0x000bd] in <3581d802103c47bbbf47f26a2763b24c>:0

Я прочитал, и мне кажется, что мне нужно установить DYLD_FALLBACK_LIBRARY_PATH на / usr / lib (я вижу файл - lib c .dylib - там есть), поверьте, я должен добавить его в информацию. plist как переменная окружения, но она все равно не работает, или я делаю это неправильно.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Я просто копирую lib c .dylib. в приложение MonoBundle или папку ресурсов. Dll можно найти здесь: https://github.com/facilityweb/Dlls/blob/master/libc.dylib

0 голосов
/ 07 февраля 2020

Если вы включили усиленную среду выполнения, попробуйте добавить «Разрешить право доступа к переменным окружения DYLD» (com.apple.security.cs.allow-dyld-environment-variable) в ваш Entitlements.plist.

...