Reference.cs中的方法
public void EndUploadFile(System.IAsyncResult result) {
object[] _args = new object[0];
base.EndInvoke("UploadFile", _args, result);;//当运行到这句话时出错
}
错误是 远程服务器返回了错误: NotFound。
这是什么原因啊?
public void EndUploadFile(System.IAsyncResult result) {
object[] _args = new object[0];
base.EndInvoke("UploadFile", _args, result);;//当运行到这句话时出错
}
错误是 远程服务器返回了错误: NotFound。
这是什么原因啊?
客户端
private void ButtonUploadImage_Click(object sender, RoutedEventArgs e) {
ImgOrg = new BitmapImage();
Stream stream = openFileDialog.File.OpenRead();
byte[] b = new byte[stream.Length];
stream.Read(b, 0, (int)stream.Length);
stream.Close();
ServiceReference1.IwcfserverClient client = new ServiceReference1.IwcfserverClient();
client.UploadFileCompleted += new EventHandler<AsyncCompletedEventArgs>(client_UploadFileCompleted);
client.UploadFileAsync(openFileDialog.File.Name, b);
服务器端 wcfserver.svc.cs
public void UploadFile(string fileName, byte[] data) {
string uri = HostingEnvironment.ApplicationPhysicalPath;
string file = Path.Combine(uri, Path.GetFileName(fileName));
using (FileStream fs = new FileStream(file, FileMode.Create)) {
fs.Write(data, 0, data.Length); }
}
Iwcfserver.cs
public interface Iwcfserver { [OperationContract]
void UploadFile(string fileName, byte[] data);
// TODO: 在此添加您的服务操作
}
其实你可以把服务项目在Visual Studio中按F5调试运行的,这样一定出现服务端错误,就会停在错误处(除非服务代码不在本机)。
可是我第一次运行的时候没问题,服务器端也调试进去了,结果也正常。可是不知道怎么地就突然出这个错了。第一次上传到服务端的文件成功后我就手动删除了,不存在文件被锁的问题啊