2013-04-21 52 views
16

Tôi biết có rất nhiều câu hỏi liên quan đến cùng một chủ đề tại stackoverflow, nhưng ở đây tôi có một số vấn đề khác nhau:Bắt Lỗi 107 (net :: ERR_SSL_PROTOCOL_ERROR): Lỗi giao thức SSL

tôi đã sử dụng installer class để reserve a portbind it with hash trên win7/Winxp:

if (Environment.OSVersion.Version.Major > 5) 
{ 
    startInfo.Arguments = @"/c netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE"; 
    netsh http add sslcert ipport=127.0.0.1:8083 certhash=df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 appid={00112233-4455-6677-8899-CCBBCCDDEEFF} clientcertnegotiation=enable; 
} 
else 
{ 
    startInfo.Arguments = @"/c httpcfg set urlacl /u https://127.0.0.1:8083/"; 
    httpcfg set ssl -i 127.0.0.1:8083 -h df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 -f 2 
} 

Không có gì sai với mã và setup project là. Tất cả mọi thứ hoạt động tốt, ngoại trừ điểm sau đây:

  • bất cứ khi nào tôi cài đặt exe trên win7 nó chạy WCF webservice thành công.
  • Bất cứ khi nào tôi đang sử dụng WinXP(SP#) trên máy tính địa phương của tôi nó ném một Lỗi:

    Lỗi 107 (net :: ERR_SSL_PROTOCOL_ERROR): Lỗi giao thức SSL

  • Nhưng khi tôi đang sử dụng teamviewer để đăng nhập vào bất cứ WinXp máy ảo, Nó chạy thành công.

Làm thế nào có thể, tôi đã thử một vài lần nhưng có cùng kết quả. Nó đang chạy trên Xp (chạy trên máy ảo) nhưng không chạy trên máy XP thực?

Tôi đã viết gì đó sai để ràng buộc và dự trữ cổng chưa? Tường lửa có đóng một số vai trò ở đây không?

Tôi cũng đã xác nhận nó với httpcfg query ssl và hàm băm được liên kết thành công với cổng.

Mọi trợ giúp sẽ được đánh giá cao.

IMO lệnh này không hoạt động: netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE

Tôi cố gắng để tìm ra các lỗi với fiddler và nó nói:

Trả lời

1

Cấu hình của máy XP địa phương có khả năng khác nhau từ đó của Ảo. Một kịch bản mà tôi có thể nghĩ là một bộ phận CNTT sẽ cấu hình máy XP một cách và sau đó bạn tạo một máy ảo, nó chỉ sử dụng các thiết lập mặc định (khác nhau). Tôi không nói đó là kịch bản của bạn cụ thể, chỉ một trường hợp. Khác là máy tính đã lỗi thời/unupdated mà không phải là quá nhiều của một vấn đề cấu hình vì nó là sự tồn tại của lỗi.

Ở bất kỳ mức nào, tôi muốn nói rằng your installation of XP is incorrectly determining that the certificate is invalid, một ký tự phụ mà VM không chia sẻ. Nhận xét của bạn về cài đặt tường lửa cũng có thể chính xác - hãy thử Google.

Chúc may mắn!

0

Điều này có thể trông ngu ngốc nhưng một số ứng dụng có thể sử dụng các cổng SSL như Team Viewer hoặc thậm chí Skype. Hãy thử tắt các ứng dụng này trong trường hợp bạn có một số ứng dụng chạy trên máy của bạn!

Xin lỗi, nó chỉ là một đoán :) nhưng tôi hy vọng nó sẽ giúp ...

0

Do thiết lập sau berfoe gọi dịch vụ WCF bạn

ServicePointManager.ServerCertificateValidationCallback = 
      delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 

để biết thêm detatils tham khảo: Using a self-signed certificate with .NET's HttpWebRequest/Response

Các vấn đề liên quan