WCf服务文件下载
我正在创建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();
}
有人请帮助我,我不明白什么是错的?
如果您需要更多数据来帮助我解决问题,也请告诉我。
非常感谢, 牛逼
“内部服务器错误”应当提示你,它是即具有“服务”上的服务有问题的服务器。你的代码甚至没有机会执行,所以它不是罪魁祸首。您需要确保IIS配置正确。
首先验证您的验证模式是否正确。如果您使用模拟,您还需要激活。如果您一直在使用ASP.NET开发服务器(在开始调试时会自动在您的机器上启动的服务器),那么您应该知道,对于您的配置而言,它非常松懈。 IIS很挑剔。
在IIS中做出的所有更改都可以通过web.config反映出来,所以请记住您对IIS所做的调整,并在web.config中反映这些更改。这可以确保问题不会再次出现(例如,在另一次构建之后)。
如果您的项目是一个“WCF服务应用程序”,那么您应该能够通过登录到您托管服务的服务器并从浏览器查看.svc文件来查看更详细的错误消息。
你能帮我配置吗?我没有太多的经验这样做。我从来没有在IIS7.0上运行过WCF服务。也许你知道一个很好的教程来帮助我配置它? – 2009-10-04 13:02:10
将转到:http://localhost/xmlLoadService/login.aspx?ReturnUrl =/xmlLoadService/Service.svc 我收到此错误:HTTP错误401.2 - 未授权 由于无效的验证标头,您无权查看此页面。 – 2009-10-04 13:07:50
我刚刚编辑并添加了更多信息。登录到您的服务器并从浏览器中查看.svc文件,您将收到详细的错误消息。如果错误信息仍然让您感到困惑,只需将其输入Google,您很可能会很快找到答案。继续重复这些步骤,直到你有它的工作。 :) – 2009-10-04 13:07:55