gpt4 book ai didi

c# - 当 localhost :port number is in browser address in iis express 时,web api 显示 403.14 错误

转载 作者:IT王子 更新时间:2023-10-29 04:49:09 24 4
gpt4 key购买 nike

这一定是一件非常愚蠢的事情,但我想不出还能做什么。

使用 Visual Studio 2013 - Update 1,我在现有解决方案中创建了一个空的 Web API 2 项目,添加了跨源支持 (cors) 包并创建了一个基本的 Web API Controller 。

WebApiConfig 类似乎没问题:

    public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var cors = new EnableCorsAttribute("*","*","*");
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}

还有 Global.asax

    protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}

然后我运行应用程序,IIS express 正常启动,浏览器以应用程序的 url 启动,但似乎没有任何效果。

如果 URL 是“localhost:port number”,我会得到 HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory

如果我尝试“localhost:port number/api”,我得到 HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporary unavailable.

我看过几个博客、教程、示例,但我没有看到任何地方需要做任何特别的事情。有人可以阐明我可能遗漏的内容吗?

最佳答案

Web Api 没有可以通过导航到根目录(在本例中为 localhost:port)来查看的默认可视页面(aspx、html 等)。所以这是正常的行为。为了通过 Controller 访问您的 Api,您需要使用 MapHttpRoute() 方法中指定的路由模板访问它。

因此,要访问 Api 中的 GET 方法,您需要打开浏览器并将 localhost:port/api/{controllername} 放入 url。 {controllername} 将被设置为您的 Controller 类的名称,而没有在末尾添加 Controller。

例如:如果您的 Controller 看起来像这样:

public class TestController : ApiController {
public HttpResponseMessage Get() {
return something;
}

public HttpResponseMessage Get(int id) {
return something with id;
}
}

那么第一个 Get() 的 url 将如下所示:

localhost:port/api/test

第二个 Get(int id) 的 url 看起来像这样:

localhost:port/api/test/5

关于c# - 当 localhost :port number is in browser address in iis express 时,web api 显示 403.14 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com