- bounty将在6天后过期**。回答此问题可获得+250声望奖励。Lars Holdgaard希望引起更多人关注此问题。
我有一个. NET 7 Web应用程序,其中有一个控制器,它会生成一个sitemap.xml
文件。当我在本地运行该应用程序时,我会得到一个XML文件,其中包含以下内容:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"/>
它看起来像这样:
但是,当将其推送到生产环境时(所有内容都作为Web应用托管在Azure上),同一端点将不返回任何内容。它会识别该端点,如下所示:
我的代码生成这个,如下所示:
[Route("/sitemap.xml")]
public async Task SitemapXml()
{
var countries = await _countryService.GetBySpecificationAsync(new CountrySpecification()
{
Take = int.MaxValue
});
Response.ContentType = "application/xml";
using (var xml = XmlWriter.Create(Response.Body, new XmlWriterSettings { Indent = true }))
{
xml.WriteStartDocument();
xml.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
xml.WriteEndElement();
}
}
- 我的问题:**我完全迷路了。起初我以为是因为我没有添加对静态文件的支持,这被认为是一个静态文件,但我有:
app.UseStaticFiles();
在Program.cs
中。
有什么提示我应该从哪里开始吗?
1条答案
按热度按时间ldfqzlk81#
from this msdn magazine:“返回void的控制器将产生EmptyResult。”我假设这对Task也适用。
因此,您可能需要将方法的返回类型从
Task
更改为Task<IActionResult>
(或任何最适合您的类型),并使用these availablle methods中的任意一个返回内容。然后虽然,我不明白为什么没有这些mods目前是在本地工作。