WCf服务文件下载

时间:2009-10-04 12:41:23

标签: c# wcf

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

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

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

 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();
        }

有人请帮帮我,我不明白有什么不对?

如果您需要更多数据来帮我解决,请告知我们。

非常感谢, Ť

1 个答案:

答案 0 :(得分:1)

“内部服务器错误”应该会让您知道服务器是否正在“服务”该服务。你的代码甚至没有机会执行所以它不是罪魁祸首。您需要确保正确配置IIS。

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

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

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