【发布时间】:2020-04-21 10:47:24
【问题描述】:
我在 .net 框架 4.7.2 上有一个简单的 asp.net Web 应用程序
它有一个简单的控制器
public class ServiceApiController : ApiController
{
[HttpGet]
public string ping()
{
return "pong";
}
}
并且有一个启动类
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
var cors = new EnableCorsAttribute("*", "*", "*")
{
SupportsCredentials = true
};
cors.Methods.Add("POST");
cors.Methods.Add("GET");
config.EnableCors(cors);
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ServiceApi",
routeTemplate: "{controller}/{action}"
);
IoCCommon.Start(typeof(Startup).Assembly, config);
app.UseWebApi(config);
}
当通过 VS 2019 和 IIS Express 进行本地托管时,我向邮递员发送请求,地址为:http://localhost:8055/ServiceApi/ping
我收到回复“pong”
但是当我在 IIS 上的远程计算机上托管此应用程序并发送请求时: http://machine-address:8055/ServiceApi/ping
我得到响应“404 - 找不到文件或目录。”
您对可能出现的问题有什么建议吗?
更新:
当我去链接时在机器上(Internet Explorer)http://localhost:8055/ServiceApi/ping
我得到同样的错误:404 未找到
【问题讨论】:
-
“当我在 IIS 上的远程计算机上托管此应用程序时”含糊不清。您必须揭示您是如何做到的以及那里的 IIS 配置如何。即使是最小的错误,例如错误的站点绑定,也可能导致 404,因为请求可以路由到另一个站点,docs.jexusmanager.com/tutorials/binding-diagnostics.html