식물의 개체군을 관리하는 웹 응용 프로그램을 개발 중입니다. 응용 프로그램의 한 가지 기능은 식물 간의 관계를 그래프로 볼 수있는 기능입니다. 이 시각화는 점 파일로 생성 된 다음 GraphViz를 사용하여 SVG로 변환됩니다. 결과 SVG 마크 업은 Response.Write() 기술을 사용하여 .aspx 파일을 통해 브라우저에 렌더링됩니다.Mono/Lighttpd - Response.Write()를 통해 반환 된 SVG 파일에 가비지 텍스트가 추가되었습니다.
영문 마크 업 :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Visualisation.aspx.cs" Inherits="Webapp.PopulationManager.Visualisation" %>
Codebehind가 :
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();
}
}
이 기술은 (대화 상자가 저장/SVG 파일을 열려면 나 한테 물어 팝업) 내 Windows 개발 시스템에서 완벽하게 작동합니다.
그러나이 응용 프로그램을 호스팅하는 Linux 서버에 배포 할 때 페이지가 SVG 마크 업을 반환하지만 첫 번째 줄에 약 5-6 자의 가비지 문자열이 추가되어 브라우저의 구문 분석이 실패합니다 SVG 파일.
Linux 호스트는 RHEL5, Mono 1.9 및 Lighttpd (Mono와 통신하기 위해 고속 -cgi 사용)를 실행합니다.
SVG 마크 업이 Linux 서버에서 정상적으로 생성되었음을 확인했습니다. Lighttpd 대신 XSP2를 사용하여 웹 응용 프로그램을 실행하면 페이지가 예상대로 작동합니다. 가비지 라인은 SVG 마크 업이 생성 된 후 어딘가에 추가됩니다 (따라서 응답을 작성하기 전에 첫 번째 라인을 제거 할 수는 없습니다).
이 문제의 원인을 아는 사람이 있습니까? 옵션, 생각 및 생각이 크게 받았다.
감사합니다.
편집 :
문자는 내가위한 시각화를 만들 개체에 따라 달라집니다 -하지만 특정 기업에 대해 동일하게 유지됩니다. 그래서 객체 A에 대한 SVG 시각화를 만들면 첫 번째 줄에 문자열 1f35를 항상 쓰레기로 가져옵니다.
매번 다른 가비지 문자를 사용합니까? 또는 같은 것들? 유니 코드 BOM? –