2010-08-03 2 views
4

나는 유닉스 시스템에서 갑자기 .NET/Windows 용으로 작성한 콘솔 응용 프로그램을 가지고 있습니다. Mono는 대부분 나를 위해이 기능을 제공하는 데 큰 성공을 거두었습니다. 가 실행될 응용 프로그램 문제 많은 HttpWebRequests, 그리고 이들의 작은 부분을 위해, 모노 오류 반환 :Mono : SSL이 아닌 URI에서 HttpWebRequest SSL 오류

그러나 작은 문제가

Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

이 오류 메시지가 SSL을 나타내는 것을 오류. 그러나이 애플리케이션은 SSL 보안 URI에 대한 요청을하지 않습니다 (즉, 모든 URI는 http : //입니다). 다음과 같이

문제의 주요 코드는 다음과 같습니다

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; 
req.UserAgent = UserAgent; 
req.AuthenticationLevel = AuthenticationLevel.None; 
req.AllowAutoRedirect = true; 
req.KeepAlive = true; 
req.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore); 
req.Timeout = timeout; 

if (useCompression) { 
    req.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); 
} 

편집 :

string url = "http://example.com"; 
string UserAgent = "WhateverBot"; 
int timeout = 5000; 
bool useCompression = true; 

이 있어야한다 : 다음과 같이 코드를 실행의 목적, 당신은 더미 변수를 정의 할 수 있습니다 이 코드는 Windows/.NET에서 문제없이 작동합니다.

+0

컴파일 할 수있는 예제 코드와 하나 또는 두 개의 URL을 제공 할 수 있습니까? – santa

+1

요청한 URL로 인해 SSL 버전으로 리디렉션되지 않았습니까? 그것은 Windows 환경에서 작동합니까? http 모니터링 도구를 사용하여 요청/응답을 확인 했습니까? –

+0

@ 산타 - 완료. @ Jaroslav Jandek - Windows에는 문제가 없습니다. 나는 어떤 증거도 가지고 있지 않지만 보안 웹 사이트로 리다이렉트 될 가능성은 매우 희박하다고 생각한다. 이는 다양한 URL (다양한 호스트)의 다양한 상황에서 발생하지만, 요청. http 모니터링을 어렵게하는 특정 실용성이 있지만 솔루션을 쉽게 찾을 수없는 경우 옵션으로 간주합니다. – Nick

답변

1

또한 URL이 HTTPS가 아닌 경우에도 Windows에서 Mono를 실행할 때이 문제가 발생합니다. 큰소리로 말해 보겠습니다. ITS NOT REDIRECTED.

이 솔루션은 해킹을 사용하는 것이 었습니다 :

System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate 
{ 
    return true; 
}; 

내 생각 인증서는 해당하므로, 어떠한 HTTPWebXXXX 있도록 제대로 초기화되지 찾을 수없는 다음 잘못 실패에 대한 모노는 Windows 스토어에서 보이지 않는다는 것입니다.

내 생각으로는 오류를 재생하는 데 어려움을 겪는 사람은 누구나 Mono (예를 들어 나와는 다른)에서 무엇을하는지 알게되고 환경을 올바르게 설정하고이 실제 문제를 재현 할 수 없게됩니다.

관련 문제