2013-03-05 5 views
5

내 컴퓨터에서 모든 것이 잘 작동하고 멋지지만 다른 Windows7 컴퓨터에서 프로그램을 테스트했을 때 System.UriFormatException : 이 나타납니다. 잘못된 URI : 문자열에 잘못된 시퀀스가 ​​있습니다. 다음 코드에 : 처음에는 Uri.UnescapeDataString(section);Uri.UnescapeDataString이 다른 컴퓨터에서 실패합니다

나는 두 번째 컴퓨터가 dev에 PC에서 다른 데이터를 수신 한 생각, 그래서 파일에 실패 된 HTML 문자열을 복사하여 여기에 내 코드를 감소 :

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()); 
    } 
} 

dev pc에서 제대로 작동하지만 두 번째 컴퓨터는 예외를 다시받습니다. 두 파일 모두 똑같은 ld.txt 파일에서 동일한 HTML을로드 한 다음 똑같은 작업을 수행합니다. 두 PC 모두 x64 Win7입니다. 뭐라 구요?

+0

닷넷 4.5 .NET 버전 및 패치를 통과? 하나는 패치되고 다른 하나는 오류 일 수 있습니다 ... 그리고 ld.txt에서 오류를 생성하는 행은 무엇입니까? – nhahtdh

+0

확인하지 않았지만 응용 프로그램은 4.0으로 작성되었습니다. 업데이트가 도움이되는지 확인하겠습니다. (있는 경우) – natli

+0

텍스트 인코딩 문제 일 수 있습니까? 한 컴퓨터의 다른 기본 텍스트 인코딩이 다른 컴퓨터에 있습니까? 컴퓨터 1의 문자열'section'이 컴퓨터 2의'section'과 정확히 동일하다는 것을 확인 했습니까? 둘 다 동일한 버전의 .NET을 실행하고 있습니까? –

답변

8

UnescapeDataString은 (닷넷 4.0를 대상으로 컴파일하더라도) CLR 4.0 및 4.5

내가 설치 닷넷의 다른 버전이 시스템에이 문제를 재현 할 수 사이에 변경 한 것으로 나타납니다.

아마 당신의 dev 컴퓨터 (따라서 .Net 4.5)와 다른 컴퓨터의 .Net 4에 VS 2012가 있습니까?

이 코드는 닷넷 4.0에서 예외가 발생

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("CLR version: " + Environment.Version); 
     Console.WriteLine(Uri.UnescapeDataString("%")); 
    } 
} 
+0

사실 이후 너무 오랫동안 대답 해 주셔서 감사합니다. 나는 정말로 devs machine에 vs2012를 가지고 있고 다른 컴퓨터에는 vs2012를 가지고 있지 않다. 그래서 나는 앞으로 나아가서 그 원인으로 생각할 것이다. – natli

+1

당신을 진심으로 환영합니다. 나는 똑같은 문제에 부딪 혔고, 이것을 더 큰 이익을 위해서 게시했다. :) – Timje

+1

이것은 매우 도움이되었다. 사실 [.Net Framework 4.5.1 Developer Pack] (http://www.microsoft.com/en-us/download/details.aspx?id=40772) 만 설치하면이 문제가 해결되었습니다. 구성, 이중 탈출 등을 포함한 모든 것이 여전히 유사하지 않았지만이 문제는 계속되지 않았습니다. 당신의 솔루션이 그랬습니다. 감사! – amitthk

관련 문제