2016-06-17 24 views
3

Meine Xamarin App verwendet bei der Kommunikation mit einem Back-End-Webdienst eine externe IP-Adresse. Mit Xamarin.iOS 9.6.2.4 ist der Aufruf erfolgreich. Nach dem Upgrade auf Xamarin.iOS 9.8.0.323 treffe ich jetzt eine Ausnahme mit der Meldung "Error: NameResolutionFailure".NameResolutionFailure mit externer IP-Adresse nach dem Upgrade auf Xamarin.iOS 9.8.0.323

Wenn ich zur Verwendung der internen IP-Adresse oder des FQDN wechsle, ist der Anruf erfolgreich.

Scheint dies ein Fehler im neuesten Xamarin-Update zu sein, oder sollte etwas in der Art und Weise geändert werden, in der die Anfrage gestellt wird?

try 
{ 
    //Exception message - Error:NameResolutionFailure 
    string url = "http://[External-IP-Address]:8081/MyWebService/api/GetByID/1"; 

    //The following two URLs are successful 
    //string url = "http://[Internal-IP-Address]:8081/MyWebService/api/GetByID/1"; 
    //string url = "http://[Fully-Qualified-Domain-Name]:8081/MyWebService/api/GetByID/1"; 

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url)); 
    request.ContentType = "application/json"; 
    request.Method = "GET"; 
    request.Timeout = 10 * 60 * 1000; 

    using (WebResponse response = await request.GetResponseAsync()) 
    { 
    using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
    { 
     string jsonData = reader.ReadToEnd(); 
    } 
    } 
} 
catch (Exception e) 
{ 
    Console.WriteLine(e.Message); 
} 

Ausnahme-Stack-Trace

at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x0005e] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1005 
at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (IAsyncResult iar, System.Func`2 endFunction, System.Action`1 endAction, System.Threading.Tasks.Task`1 promise, Boolean requiresSynchronization) [0x00014] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult() [0x00000] in /Users/builder/data/lanes/3339/39ebb778/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:357 
at TestURL.ViewController+<ViewDidLoad>c__async0.MoveNext() [0x000b0] in /Users/Administrator/Projects/TestURL/TestURL/ViewController.cs:26 

Weitere Informationen:

  • Laufen auf iPhone 6s Simulator (iOS 9,3)
+0

Hey! Um zu bestätigen, dass es sich tatsächlich um einen Fehler handelt (es scheint wirklich so zu sein, aber ich möchte bestätigen), können Sie den vorherigen Stable über diesen Link installieren: https://store.xamarin.com/account/my/subscription/downloads # cycle6 und testen? Vielen Dank! – clb

+0

@clb Ja, nach dem Herunterstufen auf Xamarin.iOS 9.6.2.4 wird die Anforderung erfolgreich erneut ausgeführt. – jkh

+0

Okay! Wären Sie bereit, eine Kopie der Anwendung zur Verfügung zu stellen, damit ich sie mit den Xamarin-Ingenieuren als privaten Bug ablegen kann? Nur Personen, die in Xamarin arbeiten, haben Zugriff darauf. – clb

Antwort

4

Nach einigen Recherchen ist dies ein bekanntes Problem mit der Baseline-Version von Cycle 7. Wir verfolgen dies auf den folgenden öffentlichen Fehler: https://bugzilla.xamarin.com/show_bug.cgi?id=41782

Zu diesem Zeitpunkt wäre die beste Option, auf Zyklus 6 zu bleiben oder (wenn möglich) den voll qualifizierten Domänennamen zu verwenden.

Danke!