2009-10-04 124 views
2

我正在创建WCF服务,将下载&上传xml文件。当试图将文件下载到客户端时,它给了我以下错误:WCf服务文件下载

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

我正在使用basicHTTPBinding作为我的绑定协议。我的web服务目前托管在Vista家庭高级版下IIS7.0上的我自己的电脑上。在我使用该服务下载的代码如下:

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

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

首先验证您的验证模式是否正确。如果您使用模拟,您还需要激活。如果您一直在使用ASP.NET开发服务器(在开始调试时会自动在您的机器上启动的服务器),那么您应该知道,对于您的配置而言,它非常松懈。 IIS很挑剔。

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

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

+0

你能帮我配置吗?我没有太多的经验这样做。我从来没有在IIS7.0上运行过WCF服务。也许你知道一个很好的教程来帮助我配置它? – 2009-10-04 13:02:10

+0

将转到:http://localhost/xmlLoadService/login.aspx?ReturnUrl =/xmlLoadService/Service.svc 我收到此错误:HTTP错误401.2 - 未授权 由于无效的验证标头,您无权查看此页面。 – 2009-10-04 13:07:50

+0

我刚刚编辑并添加了更多信息。登录到您的服务器并从浏览器中查看.svc文件,您将收到详细的错误消息。如果错误信息仍然让您感到困惑,只需将其输入Google,您很可能会很快找到答案。继续重复这些步骤,直到你有它的工作。 :) – 2009-10-04 13:07:55