[英]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.