【问题标题】:Why are file uploads via Silverlight 2 limited to only .TXT files?为什么通过 Silverlight 2 上传的文件仅限于 .TXT 文件?
【发布时间】:2010-09-22 15:05:13
【问题描述】:

我有一个 Silverlight 2 应用程序,它将字节数组发送到启用 Silverlight 的 WCF 服务。但是,(除非我尝试上传 .txt 文件)服务的 SaveFile() 方法永远无法到达,并且出现错误:“远程服务器返回错误:NotFound”

我是否遗漏了一些非常明显的东西?为什么我不能上传 .doc 文件?为什么只有 .txt?

更新:我尝试为 CLR 异常附加调试器,但这没有帮助。除了 404 之外,我仍然看不到任何错误。这是我的代码:

在 Page.xaml.cs 中:

OpenFileDialog dlg = new OpenFileDialog();

if (dlg.ShowDialog().Value)
{
  byte[] fileContent = new byte[dlg.File.Length];

  using (FileStream fs = dlg.File.OpenRead())
  {
    fs.Read(fileContent, 0, Convert.ToInt32(fs.Length));
    fs.Close();
  }

  Service1.Service1Client srv = new SL1.Service1.Service1Client();

  srv.SaveFileCompleted += (sender1, e1) =>
  {
    foo.Text = "Uploaded!";
  };

  srv.SaveFileAsync(dlg.File.Name, fileContent);
}

在 Service1.svc.cs 中:

[OperationContract]
public string SaveFile(string fileName, byte[] fileContent)
{
  string ret = String.Empty;

  try
  {
    string target = @"c:\debug123\" + fileName;

    if (File.Exists(target))
    {
      File.Delete(target);
    }

    File.WriteAllBytes(target, fileContent);

    ret = "OK";
  }
  catch (Exception ex)
  {
    ret = ex.ToString();
  }

  return ret;
}

有人觉得这有什么问题吗?

【问题讨论】:

    标签: asp.net wcf silverlight web-services


    【解决方案1】:

    仅供参考,我发现了我的问题,this article 解决了它。 “默认情况下,可以从客户端发送到服务的最大消息是 8124 字节。”所以我不得不通过绑定配置设置来增加限制。

    但现在我的主要问题是如何获得适当的错误消息,而不是 404。我将不得不研究更多,但希望其他人能想出一个好的答案(不幸的是,打破了 CLR 异常并没有不要帮我)。

    更新:在进一步阅读 the same article 后,我发现 Windows SDK 中包含的 WCF 服务配置实用程序可以帮助确定潜在问题。

    【讨论】:

      【解决方案2】:

      我不确定具体问题是什么,但我可以告诉你,上传绝对不限于 .txt 文件——我已经上传了 10MB WMV 文件,没有问题。也许是服务端的编码问题导致了问题?

      【讨论】:

        【解决方案3】:

        没有这样的限制。

        将调试器附加到服务并检查引发了哪个异常。为此,您需要将 Visual Studio 设置为在异常发生时中断(而不是未处理)。通过选中“Common Language Runtime Exceptions”行的左侧复选框,在 Debug->Exceptions 对话框中执行此操作。

        通过将调试器附加到服务(调试->附加到进程),您将能够看到真正的错误。 NotFound 错误是一般错误 - 真正的错误仅在服务端可见。

        【讨论】:

        • 我尝试在 CLR 异常上使用 VS 中断,但这并没有改变任何东西 - 仍然收到“未找到”错误消息。很奇怪...如果我上传 *.txt 一切正常并在 Web 服务方法中命中断点。但不喜欢 .doc、.jpg 或 .mp3。 :(
        【解决方案4】:
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 2012-09-19
        • 2010-09-22
        • 1970-01-01
        • 2017-03-30
        相关资源
        最近更新 更多