背景
我有一个ASP.Net Core v2.0 Web应用程序,该应用程序的动作结果上方具有[HttpGet]属性,不需要接受帖子。
我创建了一个电子表格,其中包含营销团队网站上的页面列表,以及一列直接链接到网站上每个页面的超链接。
问题
一旦营销团队开始单击电子表格中的链接,尽管该页面仍为用户加载,但我开始通过电子邮件(使用NLog配置)收到404错误。
问题排查
我对此进行了故障排除,并发现问题归结于[HttpGet]属性。如果我删除[HttpGet]属性,则单击电子表格中的链接不会产生404错误。
通过浏览器加载页面时,该网站不会产生404错误。
我安装了提琴手,看起来Excel正在使用“ CONNECT”方法。
我认为这可能是问题所在,因为它不是GET,但是当我在Chrome中访问页面时,它也显示了在提琴手中使用“ CONNECT”方法。
我正在寻找是否有人遇到过这个问题,他们是否解决了?我是否需要在[HTTPGet]旁边添加另一个属性来停止Excel或其他导致404错误的第三方软件?
答案 0 :(得分:0)
我已经解决了自己的问题。
对于其他任何有此问题的人,解决方法是将[HttpGet,HttpHead]设置为属性。如果您有自定义路线,请在下面添加另一个属性:
[Route(“ [controller] / custom-action”)]。
有关信息,我通过使用Visual Studio输出窗口中ASP.Net Core Web Server下拉菜单中的日志来了解此信息。我可以看到,当Excel首次请求链接时,它使用的是HEAD方法而不是GET,这就是引发404错误的原因。
希望可以帮助某人。