2013-06-28 70 views
-1

我正在使用的Web服務返回的Web異常。服務從Silverlight應用程序調用。基本上我想把eps文件轉換成png。在本地主機上一切正常,但當我部署在Web服務器上時,我收到了這個錯誤。 的Silverlight代碼是 -Web Service返回錯誤:未找到

private void btnUploadImage_Click(object sender, RoutedEventArgs e) 
     { 
      string fileextn = string.Empty; 
      OpenFileDialog openDialog = new OpenFileDialog(); 
      if (openDialog.ShowDialog() == true) 
      { 
       try 
       { 
        string fileExtension = openDialog.File.Extension.ToString(); 
        if (fileExtension.Contains("jpeg") || fileExtension.Contains("jpg") || fileExtension.Contains("png") || fileExtension.Contains("tif") || fileExtension.Contains("tiff") || fileExtension.Contains("bmp") || fileExtension.Contains("gif")) 
        { 

         using (Stream stream = openDialog.File.OpenRead()) 
         { 
          HtmlPage.Window.Invoke("showProcessingAndBlockUI"); 
          // Don't allow really big files (more than 2 MB). 
          if (stream.Length < 5 * 1024 * 1025) 
          { 
           MemoryStream tempStream = new MemoryStream(); 
           byte[] data = new byte[stream.Length]; 
           stream.Position = 0; 
           stream.Read(data, 0, (int)stream.Length); 
           tempStream.Write(data, 0, (int)stream.Length); 
           stream.Close(); 
           ProductConfiguratorServiceClient pcs = new ProductConfiguratorServiceClient(); 
           string virtualpath = HelperClass.GetVirtual(); 
           pcs.Endpoint.Address = new System.ServiceModel.EndpointAddress(virtualpath + "/Services/ProductConfiguratorService.svc/basic"); 
           pcs.GetFormattedImageCompleted += new EventHandler<GetFormattedImageCompletedEventArgs>(pcs_GetFormattedImageCompleted); 
           pcs.GetFormattedImageAsync(data); 
           pcs.CloseAsync(); 
           tempStream.Close(); 
          } 
          else 
          { 
           MessageBox.Show("Files must be less than 5 MB."); 
          } 
         } 
        } 
        else if (openDialog.File.Extension.Contains("eps")) 
        { 
         HtmlPage.Window.Invoke("showProcessingAndBlockUI"); 
         using (Stream stream = openDialog.File.OpenRead()) 
         { 
          if (stream.Length < 5 * 1024 * 1025) 
          { 
           MemoryStream tempStream = new MemoryStream(); 
           byte[] data = new byte[stream.Length]; 
           stream.Position = 0; 
           stream.Read(data, 0, (int)stream.Length); 
           tempStream.Write(data, 0, (int)stream.Length); 
           stream.Close(); 
           ProductConfiguratorServiceClient pcs = new ProductConfiguratorServiceClient(); 
           string virtualpath = HelperClass.GetVirtual(); 
           pcs.Endpoint.Address = new System.ServiceModel.EndpointAddress(virtualpath +                        "/Services/ProductConfiguratorService.svc/basic"); 
           pcs.GetEpsFileIntoPngCompleted += new EventHandler<GetEpsFileIntoPngCompletedEventArgs>(pcs_GetEpsFileIntoPngCompleted); 
           pcs.GetEpsFileIntoPngAsync(data); 
           tempStream.Close(); 
          } 
          else 
          { 
           MessageBox.Show("Files must be less than 5 MB."); 
          } 
         } 
        } 
        else 
        { 
         MessageBox.Show("Please Check the Image Format."); 
        } 
       } 
       catch (Exception) 
       { 
        HtmlPage.Window.Invoke("hideBlockUI"); 
        MessageBox.Show("Somr Error Occured, Please Try Again Later ."); 
       } 
      } 

     } 

     void pcs_GetEpsFileIntoPngCompleted(object sender, GetEpsFileIntoPngCompletedEventArgs e) 
     { 
       busi.CurrentlySelectedOverlayImage.UploadedImageStream = e.Result; 
       busi.CurrentlySelectedOverlayImage.ImageFileType = "png"; 
       RefreshStatus(); 
       busi.CurrentlySelectedOverlayImageChanged = true; 
       HtmlPage.Window.Invoke("hideBlockUI"); 
     } 

     void pcs_GetFormattedImageCompleted(object sender, GetFormattedImageCompletedEventArgs e) 
     { 
      try 
      { 
       if (e.Error != null) 
       { 
        MessageBox.Show(e.Error.ToString()); 
       } 
       else 
       { 
        busi.CurrentlySelectedOverlayImage.UploadedImageStream = e.Result; 
        busi.CurrentlySelectedOverlayImage.ImageFileType = "jpeg"; 
        RefreshStatus(); 
        busi.CurrentlySelectedOverlayImageChanged = true; 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      } 

      //throw new NotImplementedException(); 
     } 

錯誤是在System.Net.Browser.BrowserHttpWebRequest

請幫助我,這是什麼樣的問題?

回答

0

它可能與這條線有關。

pcs.Endpoint.Address = new System.ServiceModel.EndpointAddress(virtualpath + 

您錯過了其餘部分。 很確定這是一個編譯錯誤。

因此,無論這個錯誤是否被吃掉,並且通用的彈出窗口,或者你還有其他一些問題。

+0

正如你所見,我已經提供了完整的地址。我應該這樣做嗎? –

+0

上面列出的代碼在其中存在編譯錯誤。毫無疑問。它的內部條件,否則如果(openDialog.File.Extension.Contains(「eps」)) –

+0

那麼它有可能通過本地主機成功運行?我對此感到困惑,如果可能的話,請提供一種方法來糾正這個問題。 –

相關問題