Na moim komputerze dev wszystko działało dobrze i elegancko, ale kiedy testowałem program na innym komputerze z Windows7 otrzymywałem System.UriFormatException
: Nieprawidłowy identyfikator URI: W łańcuchu jest niepoprawna sekwencja. Na poniższym kodzie: Uri.UnescapeDataString(section);
Uri.UnescapeDataString kończy się niepowodzeniem na innym komputerze
Na początku myślałem, że drugi komputer otrzymywała różne dane z komputera dev, więc skopiowane ciąg HTML, który był zepsuty do pliku i zmniejszona mój kod to:
static void Err(string s){/*Picked up by external logging*/}
private static void GetValue()
{
try
{
var html = File.ReadAllText("ld.txt");
//Retrieve section we want
var section = Regex.Match(
html,
"etc_etc(.*): ",
RegexOptions.Singleline)
.Groups[1].ToString();
Uri.UnescapeDataString(section);
}
catch (Exception ex)
{
Err(ex.ToString());
}
}
Działa poprawnie na komputerze PC, ale drugi komputer ponownie otrzymuje wyjątek. Oba ładują dokładnie ten sam html z tego samego pliku ld.txt
, a następnie robią dokładnie to samo z nim .. i oba komputery to Win7 x64. Co daje?
wersję .NET i łatek? Jest możliwe, że jeden jest załatany, a drugi nie ... I jaka jest linia w pliku ld.txt, który powoduje błąd? – nhahtdh
Nie sprawdzono tego, ale aplikacja została zbudowana w wersji 4.0. Zobaczę, czy aktualizacja pomaga (jeśli są jakieś). – natli
Czy może to być problem z kodowaniem tekstu? Jeden komputer ma inne domyślne kodowanie tekstu niż inne? Czy zweryfikowaliście, że ciąg 'section' na komputerze 1 jest dokładnie taki sam jak" sekcja "na komputerze 2? Oba działają w tej samej wersji .NET? –