2012-09-05 92 views
3

請有人幫助我。我一直在研究這個好幾個小時,嘗試了很多不同的建議修復方法,而且我完全喪失了爲什麼我仍然遇到這個錯誤。服務器違反了協議。部分= ResponseStatusLine

我在它與下面的代碼的ASP.NET 4.0網頁:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetHref); 
// request.KeepAlive = false; 
// request.ProtocolVersion = System.Net.HttpVersion.Version10; 
// request.ServicePoint.Expect100Continue = false; 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

我已經試過各種組合我能想象的取消註釋上述3註釋行。

我有這個在我的web.config:

<system.net> 
    <settings> 
     <httpWebRequest useUnsafeHeaderParsing ="true"/> 
    </settings> 
</system.net> 

當我我的開發機器上運行提琴手,在網頁上運行,無一例外,提琴手顯示此消息在返回的頂部:

HTTP/1.0 200這車服務器未返回頭

沒有提琴手運行,我GE t每次在request.GetResponse()行發生錯誤。

回答

6

嗯,我想每一個建議,我可以在這裏找到在計算器上和網絡上其他地方,但從來沒有得到的HttpWebRequest的實現爲我工作,所以我看完這個,而不是嘗試使用的TcpClient: How To Set useUnsafeHeaderParsing For .NET Compact Framework

爲了得到它爲我工作,我不得不修改這一行:

sw.WriteLine(string.Format("GET /{0} HTTP/1.1", pathAndQueryString)); 

到:

sw.WriteLine(string.Format("GET /{0} {1}", pathAndQueryString, Environment.NewLine+Environment.NewLine)); 

那有效。

+1

Who-hoo!您爲Environment.NewLine節省了很多工作,謝謝! –

0

在asp.net中用C#這個問題只和端口有關。

許多程序使用80端口這就是爲什麼你得到這個錯誤,所以去掉這個問題只要閉上你的

的Skype,VPN等軟件無需配置的..它能夠解決您的問題。

在我的情況下,實際上它不是Skype,而是在退出後臺運行熱點盾(免費VPN)軟件,該軟件解決了我的問題。

相關問題