Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mono/Lighttpd-通过Response.Write()返回的添加到SVG文件中的垃圾文本_C#_Asp.net_Mono_Svg_Lighttpd - Fatal编程技术网

C# Mono/Lighttpd-通过Response.Write()返回的添加到SVG文件中的垃圾文本

C# Mono/Lighttpd-通过Response.Write()返回的添加到SVG文件中的垃圾文本,c#,asp.net,mono,svg,lighttpd,C#,Asp.net,Mono,Svg,Lighttpd,我正在开发一个管理植物种群的web应用程序。该应用程序的一个特点是能够以图形的形式查看植物之间的关系。该可视化生成为点文件,然后使用GraphViz转换为SVG。然后,使用Response.Write()技术,通过.aspx文件将生成的SVG标记呈现给浏览器 Aspx标记: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Visualisation.aspx.cs" Inherits="Webapp.PopulationM

我正在开发一个管理植物种群的web应用程序。该应用程序的一个特点是能够以图形的形式查看植物之间的关系。该可视化生成为点文件,然后使用GraphViz转换为SVG。然后,使用Response.Write()技术,通过.aspx文件将生成的SVG标记呈现给浏览器

Aspx标记:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Visualisation.aspx.cs" Inherits="Webapp.PopulationManager.Visualisation" %>
这种技术在我的Windows开发机器上非常有效(弹出一个对话框,要求我保存/打开SVG文件)

但是,当部署到承载此应用程序的Linux服务器时,它会失败-页面返回SVG标记,但在第一行添加了一个大约5-6个字符的垃圾字符串,导致浏览器无法解析SVG文件

Linux主机运行RHEL5、Mono 1.9和Lighttpd(通过快速cgi与Mono对话)

我已经验证了SVG标记是在Linux服务器上干净地生成的;如果我用XSP2而不是Lighttpd运行web应用程序,页面将按预期工作。垃圾行是在生成SVG标记之后添加的(因此我不能在写出响应之前删除第一行)

有人知道这可能是什么原因吗?选项、想法和想法得到了极大的认可

谢谢

编辑:


根据我创建的可视化实体的不同,字符会有所不同,但对于给定的实体,字符保持不变。因此,如果我为对象A创建一个SVG visualtion,我将始终在第一行中获取字符串1f35作为垃圾。

请更新到最近的Mono(2.4.2.3),然后重试。由于IIRC Red Hat没有用于Mono的RPM,您必须构建它并从源代码进行安装。1.9已经非常过时了。从那时起,Mono的所有部分都得到了改进。

请更新到最近的Mono(2.4.2.3),然后重试。由于IIRC Red Hat没有用于Mono的RPM,您必须构建它并从源代码进行安装。1.9已经非常过时了。从那时起,Mono的所有部分都得到了改进。

您的内容类型无效,应为“image/svg+xml”。

您的内容类型无效,应为“image/svg+xml”。

谢谢您的建议。我还没有能够得到一个更新的单声道版本的工作建设。此外,该页面在XSP2下正常运行——因此我倾向于相信它与lighttpd/fast cgi设置有关?(这两件事我都没有什么经验!)你可能是对的。不过,我很确定Mono中对快速cgi的支持也得到了改进,这就是为什么我建议首先更新的原因。对于编译mono,
/configure
应该列出任何缺失的或过时的依赖项。我将再次尝试构建mono的新版本-如果失败,我将看看计算部门是否有一台备用的Windows机器,我可以用我的Linux服务器换取:pThanks获得建议。我还没有能够得到一个更新的单声道版本的工作建设。此外,该页面在XSP2下正常运行——因此我倾向于相信它与lighttpd/fast cgi设置有关?(这两件事我都没有什么经验!)你可能是对的。不过,我很确定Mono中对快速cgi的支持也得到了改进,这就是为什么我建议首先更新的原因。对于编译mono,
/configure
应该列出任何缺失或过时的依赖项。我将再次尝试构建mono的新版本-如果失败,我将看看计算部门是否有一台备用Windows机器,我可以用我的Linux服务器换取:pWell!不幸的是,它没有解决问题,但无论如何还是要谢谢你。发现得好!不幸的是,它并没有解决这个问题,不过还是要谢谢你。你每次都会收到不同的垃圾字符吗?还是同样的?Unicode BOM表?每次都有不同的垃圾字符吗?还是同样的?Unicode BOM?
protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            // ...snip...
            string svgString = PopulationModule.VisualiseTable(connectionTable, title, url.ToString());

            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "image/svg-xml";
            Response.AddHeader("Content-Disposition", string.Format("inline;filename={0}", filename));
            Response.Write(svgString);
            Response.Flush();
        }
    }