我有一个 WCF 服务启动并运行,它将文件保存到我的服务器。我已经通过发送一个.txt
文件和一个.xls
文件对此进行了测试。文件大小.xls
为 90kb。
现在我有一个.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 文件。