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

C# Web API在不被托管的情况下如何响应?,c#,asp.net,api,asp.net-web-api,asp.net-web-api2,C#,Asp.net,Api,Asp.net Web Api,Asp.net Web Api2,我在这里学习了微软的WebAPI2教程 我试图运行它,但得到了403.14错误。经过一些研究,我发现您只需构建它并从浏览器调用其功能,如下所述: 我的印象是需要托管Web API才能调用,如果我没有运行它,浏览器如何才能调用其功能?创建新的Web API项目时,Visual Studio将创建一个新的ASP.NET应用程序并添加Web API特定的模板。ASP.NET应用程序可以托管在Visual Studio的内置开发服务器(也称为IIS Express)中。因此,当您点击F5时,您基本上

我在这里学习了微软的WebAPI2教程

我试图运行它,但得到了403.14错误。经过一些研究,我发现您只需构建它并从浏览器调用其功能,如下所述:


我的印象是需要托管Web API才能调用,如果我没有运行它,浏览器如何才能调用其功能?

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

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


正如Darin已经说过的,当您运行ProductsApp项目时,Web API需要托管,并且托管在IIS Express中。你可以在这里阅读更多关于IISExpress的信息[1]

但是,您的问题来自这样一个事实,即一旦您运行项目,浏览器在可能的情况下会打开默认路径,并且您的计算机上有一个未映射的不同端口

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

[1]


[2]

它不是在F5上构建的,这就是问题所在,但是如果您构建它,出于某种原因,是的,IIS会在不运行的情况下托管它。因此,在这种情况下,它可能托管在IIS中,而不是IIS Express中。查看项目设置-Web选项卡,该选项卡将包含托管属性。它使用IIS Express。我只是想知道为什么当我不运行应用程序时,我仍然可以调用它的函数。如果你按F5一次,它就会启动Web服务器。这样,您就不必再按F5键了。仅在本地重新编译,IIS Express将拾取您所做的更改。如果关闭Visual Studio并重新打开项目,则应用程序将不会运行和侦听IIS Express。只需在windows任务栏中查找其图标。是的,IIS Express将继续在后台运行。因此,只需在VisualStudio中重新编译项目,您所做的更改就会立即在浏览器中显示出来。它在开发时非常方便。它确实返回一个json文件,但是为什么如果我不运行应用程序,我仍然可以调用它的函数,这是我的主要问题。