C# 为什么MVC Web Api只有在调试模式下启动时才能访问?

C# 为什么MVC Web Api只有在调试模式下启动时才能访问?,c#,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,我的笔记本电脑和台式电脑都面临着一个奇怪的问题 在我的解决方案中,我有一个MVC 4 Web Api,该解决方案由Visual Studio 2013启动。 因此,如果将WebAPI项目设置为启动项目,那么当我键入WebAPI的一些url时,它会命中控制器 但是,如果启动文件夹是另一个项目,比如使用此web api的网站,那么web api就是不可访问的 我甚至尝试在调试模式下启动web api时使用相同的url 那么,有什么问题吗?最可能的问题是web服务器没有运行。尝试使用固定的URL和端口

我的笔记本电脑和台式电脑都面临着一个奇怪的问题

在我的解决方案中,我有一个MVC 4 Web Api,该解决方案由Visual Studio 2013启动。
因此,如果将WebAPI项目设置为启动项目,那么当我键入WebAPI的一些url时,它会命中控制器

但是,如果启动文件夹是另一个项目,比如使用此web api的网站,那么web api就是不可访问的

我甚至尝试在调试模式下启动web api时使用相同的url


那么,有什么问题吗?

最可能的问题是web服务器没有运行。尝试使用固定的URL和端口在IIS中托管web API

或者您可以尝试设置多个启动项目,如下所示:

  • 在解决方案资源管理器中
  • 选择,右键单击您的解决方案
  • 在“项目”菜单上,单击“属性”。将打开“解决方案属性页”对话框
  • 单击启动项目
  • 单击
    多个启动项目
    并设置项目操作启动

两种可能的尝试方法:

  • 左键单击WebApi项目,打开属性窗口(快捷键为F4),确保调试时
    始终启动
    设置为
    true
  • 调试用户应用程序时,右键单击WebApi项目,然后单击
    Debug>Start New Instance

  • 如果它们不起作用,最好的解决方案是使用IIS/IISExpress托管WebApi应用程序。我发现了实际问题。 我正在运行Windows 7 x64和Visual Studio 2013。 我必须取消选中工具->选项->调试下的启用编辑并继续复选框


    现在,我在解决方案中使用单个启动项目,并且在不处于调试模式时也可以调用web api。

    web api托管在IIS Express中。我使用了一个空的项目模板来创建ASP.NET web api。由于某些原因,在发布模式下启动时,它只是不在IIS Expres中托管。通过将其添加到多个启动项目中,问题得到了解决。我注意到,在VisualStudio2013下,MVC5和空Web API项目也存在同样的问题。我的问题现在解决了。谢谢你,达洛佐!