2011-12-21 2 views
1

Я пытаюсь выполнить тестирование базового кода System.Net.WebClient для загрузки строки с использованием конечной точки HTTPS. Похоже, что использование HTTPS из теста NUnit не срабатывает. Я могу использовать HTTP в тесте NUnit без проблем. Я могу запустить код HTTPS в консольном приложении без проблем.mono nunit test с использованием WebClient получает исключение ConnectFailure

Вот код ...

 [Test()] 
     public void TestWebclientHttp() 
     { 
      using (System.Net.WebClient wc = new System.Net.WebClient()) 
      { 
       string data = wc.DownloadString("http://maps.googleapis.com/maps/api/geocode/json?address=alvis%20court&sensor=true"); 
       System.Diagnostics.Debug.WriteLine(data); 
      }   
     } 

     [Test()] 
     public void TestWebClientHttps() 
     { 
      using (System.Net.WebClient wc = new System.Net.WebClient()) 
      { 
       string data = wc.DownloadString("https://maps.googleapis.com/maps/api/geocode/json?address=alvis%20court&sensor=true"); 
       System.Diagnostics.Debug.WriteLine(data); 
      } 
     } 

Вот трассировки стека ...

at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x0005e] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/HttpWebRequest.cs:828 
    at System.Net.HttpWebRequest.GetResponse() [0x0000e] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/HttpWebRequest.cs:836 
    at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:1433 
    at System.Net.WebClient.ReadAll (System.Net.WebRequest request, System.Object userToken) [0x00000] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:866 
    at System.Net.WebClient.DownloadDataCore (System.Uri address, System.Object userToken) [0x0000a] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:246 

развития окружающей среды ...

  • Mac OS X 10.6.8
  • Mono develop 2.8.5
  • Mono runtime 2.10.6

Спасибо.

+1

Возможно http://www.mono-project.com/FAQ:_Security#WebRequest.Create_.28.22https:.2F.2Fwww.anywhere.com.22.29.3B_throws_an_exception –

ответ

1

Моно не поставляется с сертификатом доверенного корня по умолчанию.

Вы можете установить их самостоятельно, используя mozroot или, только для тестирования (не для производства), allow any сертификат SSL для использования.

+0

Спасибо за ответ. Я уже прочитал эту статью и не думаю, что это применимо. Код HTTPS отлично работает в приложении для моноконфигурации. Он просто не работает в модульном тесте. –

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