Web API如何在不托管的情况下响应?

时间:2017-01-13 15:04:46

标签: c# asp.net api asp.net-web-api asp.net-web-api2

我在这里关注Web API 2的Microsoft教程 Web API 2 tutorial

我试图运行它并收到403.14错误。经过一些研究后,我发现你只需构建它并从浏览器调用它的功能,如下所述: Answer to Dealing with 403.14 error

我认为需要托管Web API才能被调用,如果我没有运行它,浏览器如何调用其功能?

2 个答案:

答案 0 :(得分:1)

创建新的Web API项目时,Visual Studio将创建一个新的ASP.NET应用程序并添加特定于Web API的模板。 ASP.NET应用程序可以托管在Visual Studio的内置开发服务器(也称为IIS Express)中。所以当你点击 F5 时,你基本上就是启动这个将托管应用程序的websever,它会监听一些端口号。

您可以在Windows任务栏中看到正在运行的开发人员服务器图标:

enter image description here

答案 1 :(得分:0)

当您运行 ProductsApp 项目时,需要托管Web API并将其托管在IIS Express中,正如Darin所说。您可以在此处阅读有关IISExpress的更多信息[1]。

但是,您的问题来自这样一个事实:一旦您运行项目,浏览器就会打开默认路径(可能是http://localhost:47503/,机器上有不同的端口),但未映射。

您需要做的是:在Visual Studio中运行应用程序,然后添加到在浏览器中打开的默认路径中项目中存在的实际路径(例如:/ api / products)。因此,您生成的结果将类似于:http://localhost:47503/api/products。在你提到的例子[2]中也说明了这一点,但也许不够清楚。

[1] https://www.iis.net/learn/extensions/introduction-to-iis-express/iis-express-overview

[2] https://forums.asp.net/t/1961303.aspx?HTTP%20Error%20403%2014%20Forbidden%20