使用webService下载文件

时间:2012-07-30 11:30:33

标签: asp.net web-services

[WebMethod()]
    public void GetFileByDocumentNumber(string DocumentNumber)
    {
        string FilePath = GetFile(DocumentNumber);
        string FullPath = ConfigurationManager.AppSettings["FilePath"]  + FilePath;

        DownloadToBrowser(FullPath);

    }


    private void DownloadToBrowser(string filePath)
    {
        FileInfo file = new FileInfo(filePath);
        Context.Response.Clear();

        Context.Response.ClearHeaders();

        Context.Response.ClearContent();

        Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);

        Context.Response.AddHeader("Content-Length", file.Length.ToString());

        Context.Response.ContentType = "text/plain";

        Context.Response.Flush();

        Context.Response.TransmitFile(file.FullName);

        Context.Response.End();
    }

我正在使用上面的代码来处理我的网络服务,以便从服务器下载文件。在本地计算机上工作正常但是当我在服务器上托管我的网络服务并尝试使用该服务时,它会出现以下错误

Client found response content type of 'text/plain', but expected 'text/xml'.

出现此错误的原因是什么?

2 个答案:

答案 0 :(得分:1)

尝试将ContentType替换为application/octet-stream

答案 1 :(得分:1)

您必须通过WebMethod返回文件内容。

[WebMethod()]
public string GetFileByDocumentNumber(string DocumentNumber)
{
   string FilePath = GetFile(DocumentNumber);
   string FullPath = ConfigurationManager.AppSettings["FilePath"]  + FilePath;
   return File.ReadAllText(FullPath);
}