我有一个服务,它有以下方法将文件上传到服务器:
public void uploadFile(RemoteFileInfo request)
{
FileStream targetStream = null;
Stream sourceStream = request.FileByteStream;
//Tempdir
string uploadFolder = @"C:\upload\";
string filePath = Path.Combine(uploadFolder, request.FileName);
using (targetStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
{
// Read from the input stream in 65000 byte chunks
const int bufferLen = 65000;
byte[] buffer = new byte[bufferLen];
int count = 0;
while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0)
{
//save to output stream
targetStream.Write(buffer, 0, count);
}
targetStream.Close();
sourceStream.Close();
}
}
当我制作测试控制台应用并添加了对此服务的服务引用时,我可以使用myServiceProxy.uploadFile(RemoteFileInfo request)
来调用它。
问题在于,当我尝试向地铁应用项目添加服务参考时,我无法拨打uploadFile
并且只能拨打uploadFileAsync
我无法使用甚至实施了。
有没有办法在Metro应用上使用wcf服务的常规uploadFile
方法?
其中一个主要问题是我为MessageContract
设置了RemoteFileInfo
,其中包含2个邮件标题和1个MessageBodyMember
,我甚至无法在都市应用上访问我可以在控制台应用程序上访问得很好。