TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Resmi Satish
NA
110
75k
Download file using WCF
Jun 26 2014 8:11 AM
Hi
I have to create wcf service for download file. I have
refer :
http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP
However I am getting error for
[MessageBodyMember(Order = 1)]
public System.IO.Stream FileByteStream;
When I am including this and consuming my service using a website, I am getting the error The underlying connection was closed: The connection was closed unexpectedly.
My IService.cs
[MessageContract]
public class RemoteFileInfo
{
[MessageHeader(MustUnderstand = true)]
public string FileName;
[MessageHeader(MustUnderstand = true)]
public long Length;
[MessageBodyMember(Order = 1)]
public System.IO.Stream FileByteStream;
public void Dispose()
{
if (FileByteStream != null)
{
FileByteStream.Close();
FileByteStream = null;
}
}
}
My service.cs has
public RemoteFileInfo DownloadFile(DownloadRequest request)
{
RemoteFileInfo result = new RemoteFileInfo();
string filePath = System.IO.Path.Combine(@"D:\DownLoad", request.FileName);
System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
// check if exists
if (!fileInfo.Exists)
throw new System.IO.FileNotFoundException("File not found",
request.FileName);
////// open stream
System.IO.FileStream stream = new System.IO.FileStream(filePath,
System.IO.FileMode.Open, System.IO.FileAccess.Read);
////// return result
result.FileName = request.FileName;
result.Length = fileInfo.Length;
result.FileByteStream = stream;
return result;
}
//Website page
CarService.IService clientDownload = new CarService.ServiceClient();
CarService.DownloadRequest requestData = new CarService.DownloadRequest();
CarService.RemoteFileInfo fileInfo=new CarService.RemoteFileInfo();
requestData.FileName = "Test.txt";
fileInfo = clientDownload.DownloadFile(requestData);
I have add all the configuration values as per the link I have referred.
Can we use "System.IO.Stream" as [MessageBodyMember(Order = 1)]?
Please help me to resolve the issue.
Reply
Answers (
1
)
WCF Interceptors for getting Logged on UserName
wcf Service method that accepts a class parameter via POST