C# WCf服务文件下载

C# WCf服务文件下载,c#,wcf,C#,Wcf,我正在创建WCF服务,该服务将下载和上载xml文件。尝试将文件下载到客户端时,会出现以下错误: “响应消息的内容类型text/html;charset=utf-8与绑定的内容类型不匹配(multipart/related;type=\“application/xop+xml\”)。如果使用自定义编码器,请确保正确实现IsContentTypeSupported方法。响应的前1024个字节为:”\nhttp://www.w3.org/1999/xhtml\">\n\n是7.0详细错误-500.19

我正在创建WCF服务,该服务将下载和上载xml文件。尝试将文件下载到客户端时,会出现以下错误:

“响应消息的内容类型text/html;charset=utf-8与绑定的内容类型不匹配(multipart/related;type=\“application/xop+xml\”)。如果使用自定义编码器,请确保正确实现IsContentTypeSupported方法。响应的前1024个字节为:”\nhttp://www.w3.org/1999/xhtml\">\n\n是7.0详细错误-500.19-内部服务器错误\n\n

我使用basicHTTPBinding作为绑定协议。我的Web服务目前在Vista Home Premium下的IIS7.0上托管在我自己的pc上。我正在使用的服务中的下载代码如下:

 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();
        }
有人请帮帮我,我不明白怎么了

如果您需要更多数据来帮助我解决问题,也请告诉我

非常感谢, T

该“内部服务器错误”应提示您是服务器“提供”服务时出现问题。你的代码甚至没有机会执行,所以它不是罪魁祸首。您需要确保IIS配置正确

首先验证您的身份验证模式是否正确。如果您正在使用模拟,还需要激活该功能。如果您一直在使用ASP.NET开发服务器(当您开始调试时,它会自动在您的计算机上启动),那么您应该知道,在配置方面它是相当松散的。他很挑剔

您在IIS中所做的几乎所有更改都可以通过web.config反映出来,因此请记住您对IIS所做的调整,并在web.config中反映这些更改。这确保了问题不会再次出现(比如,在另一次构建之后)


如果您的项目是“WCF服务应用程序”,那么您应该能够通过登录到承载服务的服务器并从浏览器中查看.svc文件来查看更详细的错误消息。

您能帮我配置它吗?我在这方面没有太多经验。我从未在IIS7.0上运行WCF服务。也许你知道一个很好的教程来帮助我配置它吗?转到:我得到这个错误:HTTP错误401.2-未经授权由于无效的身份验证标题,你无权查看此页面。我刚刚编辑并添加了更多信息。登录服务器并从浏览器查看.svc文件,您将收到详细的错误消息。如果错误信息仍然让你困惑,只需将其输入谷歌,你可能会很快找到答案。不断重复这些步骤,直到它工作为止。:)这是在身份验证模式下我的web.config文件中所说的:啊,看起来你没有托管真正的WCF服务。.aspx文件表示旧式的ASP.NET Web服务。