【发布时间】:2016-12-16 19:20:24
【问题描述】:
我有 2 个不同的 ASP.NET Core 网站:admin 和 public。 在登台服务器和本地机器上都运行。
我向不同页面发送 GET 请求以确定不同页面的执行时间,并遇到管理站点问题:本地实例和暂存上的所有 url 总是返回 404 错误:
“System.Net.WebException”类型的未处理异常发生在 系统.dll
附加信息:远程服务器返回错误:(404) Not 找到了。
同时,浏览器中的相同请求正常返回html页面。通过HttpWebRequest 到公共站点的请求也总是返回 200 状态码(OK)。
我收到的请求代码here。
我尝试从浏览器请求中添加所有标头和 cookie,但没有帮助。也尝试调试本地实例,发现请求执行时没有抛出异常。
有什么想法吗?
【问题讨论】:
-
404 表示服务器中请求的内容不存在,例如默认网站(index.html)...尝试使用简单的
WebClient w = new WebClient(); string s = w.DownloadString("http://myserver.com"); -
只是出于好奇,您对自己的问题提出了丰厚的奖励,其中一个或多个答案堪称典范,值得额外奖励。。只有一个答案,所以它应该是
exemplary,但你没有接受甚至不赞成它。奇怪。 -
使用 fiddler 捕获工作和失败尝试的通信。完成此操作后,您通常可以知道需要更改的内容。
-
@Evgeny Levin 虽然这不是一个好习惯,但可以将 Web 应用程序配置为在身份验证或授权失败时返回 404 错误。在您提供的链接中,未完成任何身份验证。也许问题是身份验证失败但服务器返回错误的响应。
-
我的 5 美分 - 浏览器可以通过代理发送请求;如果是这样,请确保您制作的请求通过相同的代理。
标签: c# asp.net-core httpwebrequest http-status-code-404 webrequest