2009-10-04 130 views
2

我正在創建WCF服務,將下載&上傳xml文件。當試圖將文件下載到客戶端時,它給了我以下錯誤:WCf服務文件下載

「響應消息的內容類型text/html; charset = utf-8與綁定的內容類型(多部分/ related; type = \「application/xop + xml \」)。如果使用自定義編碼器,請確保IsContentTypeSupported方法正確實現。響應的前1024個字節爲:'\ nhttp://www.w3。 org/1999/xhtml \「> \ n \ nIIS 7.0詳細錯誤 - 500.19 - 內部服務器錯誤\ n \ n

我正在使用basicHTTPBinding作爲我的綁定協議。我的web服務目前託管在Vista家庭高級版下IIS7.0上的我自己的電腦上。在我使用該服務下載的代碼如下:

public Stream Download(string path) 
    { 
     try 
     { 
      using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
      { 

       return stream; 
      } 
     } 
     catch (Exception ex) 
     { 
      string error = ex.Message; 

      return null; 
     } 
    } 

是應該下載的文件我的客戶端的代碼如下,使用只是一個普通的測試文件:

System.IO.FileStream fs; 
     try 
     { 
      fs = (System.IO.FileStream)client.Download(@"C:\UploadedFiles\Test.txt"); 
      byte[] arr = new byte[fs.Length]; 
      int read; 
      do 
      { 
       read = fs.Read(arr, 0, arr.Length); 

      } while (read != arr.Length); 

      Console.WriteLine(ASCIIEncoding.ASCII.GetString(arr)); 
      Console.ReadLine(); 
     } 
     catch (Exception Ex) 
     { 
      string error = Ex.Message; 
      string inner = Ex.InnerException.ToString(); ; 
      Console.WriteLine("Exception: {0}/nInner Exception: {1}",error,inner); 
      Console.ReadLine(); 
     } 

有人請幫助我,我不明白什麼是錯的?

如果您需要更多數據來幫助我解決問題,也請告訴我。

非常感謝, 牛逼

回答

1

「內部服務器錯誤」應當提示你,它是即具有「服務」上的服務有問題的服務器。你的代碼甚至沒有機會執行,所以它不是罪魁禍首。您需要確保IIS配置正確。

首先驗證您的驗證模式是否正確。如果您使用模擬,您還需要激活。如果您一直在使用ASP.NET開發服務器(在開始調試時會自動在您的機器上啓動的服務器),那麼您應該知道,對於您的配置而言,它非常鬆懈。 IIS很挑剔。

在IIS中做出的所有更改都可以通過web.config反映出來,所以請記住您對IIS所做的調整,並在web.config中反映這些更改。這可以確保問題不會再次出現(例如,在另一次構建之後)。

如果您的項目是一個「WCF服務應用程序」,那麼您應該能夠通過登錄到您託管服務的服務器並從瀏覽器查看.svc文件來查看更詳細的錯誤消息。

+0

你能幫我配置嗎?我沒有太多的經驗這樣做。我從來沒有在IIS7.0上運行過WCF服務。也許你知道一個很好的教程來幫助我配置它? – 2009-10-04 13:02:10

+0

將轉到:http://localhost/xmlLoadService/login.aspx?ReturnUrl =/xmlLoadService/Service.svc 我收到此錯誤:HTTP錯誤401.2 - 未授權 由於無效的驗證標頭,您無權查看此頁面。 – 2009-10-04 13:07:50

+0

我剛剛編輯並添加了更多信息。登錄到您的服務器並從瀏覽器中查看.svc文件,您將收到詳細的錯誤消息。如果錯誤信息仍然讓您感到困惑,只需將其輸入Google,您很可能會很快找到答案。繼續重複這些步驟,直到你有它的工作。 :) – 2009-10-04 13:07:55