1

我有一个 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 文件。

4

1 回答 1

0

如果中间没有“过滤代理”:

我们有类似的东西,结果解决方案相应地在客户端+服务器上设置 MIME 类型......

于 2011-08-17T16:58:49.047 回答