我使用WCF上传到服务器时恢复的文件,我试图恢复我的上传与服务器应用程序下面的代码:使用WCF
class DataUploader : IDataUploader
{
public void Upload(UploadMessage msg)
{
int speed = msg.AvgSpeed * 1024; // convert to KB
Stream stream= msg.DataStream;
string name = msg.VirtualPath;
int seekPoint; // this is get reading the partial uploaded file
using (FileStream fs = new FileStream(@"C:\savedfile.dat, FileMode.Append))
{
int bufferSize = 4 * 1024; // 4KB buffer
byte[] buffer = new byte[bufferSize];
int bytes;
while ((bytes = stream.Read(buffer, startPoint, bufferSize)) > 0)
{
fs.Write(buffer, 0, bytes);
fs.Flush();
}
stream.Close();
fs.Close();
}
}
}
我想开始读取流从指定的点(startPoint)导致第一个字节已经上传。所以我只能附加剩余的字节到部分上传的文件中。通过这种方式,我得到一个缓冲区大小的错误,不能使用寻求,因为方法不支持异常,所以我认为也许这种做法是不正确的。帮帮我!!
我的服务合同:
[ServiceContract]
interface IDataUploader
{
[OperationContract]
void Upload(UploadMessage msg);
}
我的消息协定:
[MessageContract]
public class UploadMessage
{
[MessageHeader(MustUnderstand = true)]
public string VirtualPath { get; set; }
[MessageHeader(MustUnderstand = true)]
public int AvgSpeed { get; set; }
[MessageBodyMember(Order = 1)]
public Stream DataStream { get; set; }
}
你使用什么类型的绑定?你可以发布合同接口和示例客户端调用吗? – 2011-06-09 21:25:42
使用所有绑定,nettcp wshttp和basichttp,上传工作正常,但我想恢复上传时死亡导致我使用大文件。 – blur 2011-06-09 21:34:16