Reference.cs中的方法
public void EndUploadFile(System.IAsyncResult result) {
                object[] _args = new object[0];
                base.EndInvoke("UploadFile", _args, result);;//当运行到这句话时出错
            }
错误是 远程服务器返回了错误: NotFound。
这是什么原因啊?

解决方案 »

  1.   

    你重新更新下服务引用,估计是服务方法名改了。“NotFound”是找不到服务端方法的意思。
      

  2.   

    一开始正常,突然不好用了
    客户端 
      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: 在此添加您的服务操作
        }
      

  3.   

    你这里有设计文件的读写,检查下服务端的文件是否被锁定了,比如上次操作没正常结束,创建的文件被锁,你第二次创建就卡住了。
    其实你可以把服务项目在Visual Studio中按F5调试运行的,这样一定出现服务端错误,就会停在错误处(除非服务代码不在本机)。
      

  4.   

    按F5调试还没进服务器端就出错了,也就是base.EndInvoke("UploadFile", _args, result)这句。
    可是我第一次运行的时候没问题,服务器端也调试进去了,结果也正常。可是不知道怎么地就突然出这个错了。第一次上传到服务端的文件成功后我就手动删除了,不存在文件被锁的问题啊