1
我有一個WCF服務啓動並運行,它將文件保存到我的服務器。我已通過發送一個.txt
文件和一個.xls
文件進行了測試。 .xls
文件的大小是90kb。WCF服務發送.txt或.xls但不是.gz(壓縮文件)
現在我有一個壓縮文件.gz
,這只是在大小70KB,但試圖完成此操作時,我得到
遠程服務器返回了意外的響應:(400)
錯誤的請求。
當我試圖搜索這個錯誤的請求時,大多數結果都會導致發送一個大文件,並且需要更改配置文件中的設置。
這不是我的原因,因爲.gz
文件小於.xls
文件!
有沒有人有任何想法,爲什麼這種類型的文件不能發送相同的文本或Excel文件?
編輯:代碼添加
這裏是調用服務
string name = "New Doc";
string file = @"C:/Users/Admin/Desktop/fileZipped.gz";
string ext = file.Split('.')[1];
Stream stream = File.OpenRead(file);
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
stream.Close();
var uploadFileServiceClient = new UploadFileServiceClient();
uploadFileServiceClient.UploadFile(name, bytes, ext);
的方法和這裏是我的服務:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class UploadFileService : IUploadFileService
{
public bool UploadFile(string name, byte[] bytes, string extension)
{
string importDir = ConfigurationSettings.AppSettings["UploadFileDir"];
if (String.IsNullOrEmpty(importDir))
return false;
if (!Directory.Exists(importDir))
return false;
string outputFile = Path.Combine(importDir, Guid.NewGuid() + "." + extension);
string filename = outputFile.Split('\\')[2];
using (StreamWriter sw = new StreamWriter(outputFile))
{
sw.WriteLine(bytes);
sw.Flush();
sw.Close();
}
return true;
}
}
就像我說的它適用於文本或Excel文件。
你試圖使用[跟蹤](http://msdn.microsoft.com/en-us/library/ms730342.aspx)以獲取更多的錯誤細節?同時顯示一些代碼會更容易理解問題所在。 – Reniuz
請求參數的格式是什麼?一個字節數組?編碼的字符串? –
我試過跟蹤,發現在請求標題實體有一個內容長度爲103144和內容類型,但在響應標題的內容長度爲0? – freerider11