我根据为.NET Framework2制作的示例1编写了我的程序,但我将其转换为.NET Framework3.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
发布于 2009-11-23 23:54:10
我最初考虑的是端口说明符。在该示例中,他将请求URI专门设置为端口3840,但他从未显示过修改设置以强制web服务器在托管处理程序时使用该端口。确保请求URI使用的端口与从浏览器手动访问处理程序时使用的端口相同。
编辑:我想一定是这样的,我刚刚使用最新的框架在VS2008的一个新项目中重新创建了这个示例,一旦我正确地设置了端口,一切都会正常工作。
至于调试服务器,如果您在visual studio之外托管项目的服务器部分(如果您关注CSharpCorner示例中的那个人,就会这样),那么您应该已经在调试服务器组件了,只需在服务器代码中放置一个断点即可。
https://stackoverflow.com/questions/1783888
复制相似问题