2009-11-23 30 views
0

我根據示例1爲.NET Framework 2製作了我的程序,但我將其轉換爲.NET Framework 3.5。我應該如何修改此代碼才能使其工作?我怎樣才能調試服務器端?服務器端似乎工作時,我手動插入參數到URL,所以問題必須在客戶端代碼。WebClient未連接到IHttpHandler

private void UploadFile(string fileName, System.IO.Stream data) 
{ 
    UriBuilder ub = new UriBuilder("http://localhost:59491/receiver.ashx"); 
    ub.Query = string.Format("filename={0}", fileName); 

    WebClient c = new WebClient(); 
    c.OpenWriteCompleted += (sender, e) => 
    { 
     PushData(data, e.Result); 
     e.Result.Close(); 
     data.Close(); 
    }; 
    c.OpenWriteAsync(ub.Uri); 
} 

private void PushData(System.IO.Stream input, System.IO.Stream output) 
{ 
    byte[] buffer = new byte[4096]; 
    int bytesRead; 

    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0) 
    { 
     output.Write(buffer, 0, bytesRead); 
    } 
} 

1http://www.c-sharpcorner.com/UploadFile/nipuntomar/FileUploadsilverlight03182009030537AM/FileUploadsilverlight.aspx

回答

0

我最初採取的是港口符。在該示例中,他將請求URI專門設置爲端口3840,但他從不顯示修改設置以強制Web服務器在託管處理程序時使用該端口。請確保請求URI使用的是您在通過瀏覽器手動訪問處理程序時所使用的端口。

編輯:我認爲這一定是它,我只是在VS2008的新項目中使用最新的框架重新創建示例,一切正常,一旦我得到端口設置正確。對於調試服務器,如果你使用visual studio託管服務器的一半項目(如果你在CSharpCorner示例中關注那個人,你應該是這樣的),你應該已經在調試服務器組件了,只需調試服務器組件在服務器代碼隱藏中放置一個斷點。