簡體   English   中英

WebClient未連接到IHttpHandler

[英]WebClient doesn't connect to IHttpHandler

我根據為.NET Framework 2創建的示例1編寫了程序,但將其轉換為.NET Framework 3.5。 我應該如何修改此代碼以使其起作用? 如何調試服務器端? 當我手動將參數插入url時,服務器端似乎可以正常工作,因此問題一定出在客戶端代碼中。

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);
    }
}

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

我最初的想法是端口說明符。 在該示例中,他將請求URI專門設置為端口3840,但他從未顯示修改設置來強制Web服務器在托管處理程序時使用該端口。 確保請求URI使用的端口與您從瀏覽器手動訪問處理程序時使用的端口相同。

編輯:我想一定是這樣,我剛剛在VS2008的新項目中使用最新的框架重新創建了示例,一旦正確設置了端口,一切都將正確運行。

至於調試服務器,如果您要從Visual Studio托管項目服務器的一半(如果您跟隨CSharpCorner示例中的那個人,那將是您),您應該已經在調試服務器組件,只需在其中放置一個斷點即可。服務器代碼背后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM