我正在尝试使用 ASP.NET 和 Response.Write 来输出我自己的 RSS-feed。程序代码本身不会导致错误/异常。但是,当使用 Response.Write 输出时,我在 JS 脚本 HttpErrorpagesscript 中收到错误。我收到的错误是运行时错误 Microsoft JScript:未指定错误
。
它发生在以下行:
function initMoreInfo(infoBlockID)
{
var bElement = document.createElement("A");
bElement.innerText = L_MOREINFO_TEXT; <--- Break happens here
bElement.href = "javascript:expandCollapse(\'infoBlockID\', true);";
moreInfoContainer.appendChild(bElement);
}
我不知道错误的根源,因此我提供 C# 来输出 xml。
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
StringBuilder builder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(builder, settings))
{
// Write startelement
writer.WriteStartDocument();
//Write elementRSS
writer.WriteStartElement("rss");
//Write channel
writer.WriteStartElement("channel");
//Write title
writer.WriteElementString("title","RSS-Feed svranken");
//Write Ttl
writer.WriteElementString("ttl","1");
foreach (SyndicationItem rssItem in syndFeed.Items.OrderByDescending(x => x.PublishDate).Take(25))
{
writer.WriteStartElement("item");
//Write Elements
writer.WriteElementString("PubDate", rssItem.PublishDate.ToString("yyyy-MM-dd HH:mm:ss"));
writer.WriteElementString("title", rssItem.Title.Text);
writer.WriteElementString("description", rssItem.Summary.Text);
writer.WriteElementString("link", rssItem.Id.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
}
Response.AddHeader("Content-Type", "text/xml");
Response.Write(builder.ToString());
有人发现错误了吗?我在这里缺少什么?
感谢您的宝贵时间
注意:我上面提供的 Javascript 不是我的解决方案的一部分。我认为它是由我的本地 IIS 自动生成的。
更新: IISExpress 产生与 Visual Studio 开发服务器相同的错误
最佳答案
我找到了解决方案。
根源在于RSS输出方式错误。经过一些搜索/修复后,我提出了以下工作解决方案:
所以正确的代码是
Response.ContentType = "application/rss+xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(builder.ToString());
xmlDoc.Save(Response.OutputStream);
Response.End();
谨致问候
关于c# - Response.Write(RSS) 导致 Javascript 异常 : "Unspecified error" (IIS 7. 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21721417/