如果项目未设置为使用IIS Express启动,则OWIN不会启动

时间:2015-05-18 14:53:44

标签: visual-studio-2013 owin iis-express katana

我在VS2013中有一个解决方案,具有以下设置:

  • App.Web(仅包含静态文件的Web项目)
  • App.Web.API(使用OWIN的Web API项目)

两个项目都有一个默认URL指向他们的拥有 localhost:portX(我正在使用IIS Express),因此App.Web正在侦听localhost:2222并且APP.Web.API正在侦听在localhost:3333。

我设置了App.Web.API以使用OWIN,我在IIS中为自动布线添加了 Microsoft.Owin.Host.SystemWeb 软件包。

我在OWIN启动类的配置方法中放了一个断点。

当我在VS2013中将APP.Web.API设置为“启动项目”时,将触发断点。

但是,一旦我将App.Web设置为“启动项目”,然后从浏览器向App.Web.Api发出请求,Startup类中的断点就不再出现了。

我试图遵循在网上找到的一些建议(清理IIS临时文件,使用OWIN attibute等)但它不起作用。

似乎在IIS Express中,如果包含它的项目设置为启动项目,OWIN才会启动。

有人可以解释发生了什么吗?

1 个答案:

答案 0 :(得分:1)

您只能拥有一个项目"设置为启动项目"在你的解决方案这个项目将是你App的起点,你可以根据这个"起点"来调试你的应用程序。

当您将App.Web.API设置为启动项目时,您将能够在Web Api的Startup.cs中调试您的应用程序。

当您将App.Web设置为启动项目时,您将无法在Web Api项目的Startup.cs中调试您的应用程序,因为您的Web Api项目触发了Startup.cs,不是你的App.Web项目。

可以帮助你的东西是红色断点按钮。如果在Startup.cs中设置断点并启动App.Web项目,您会注意到断点具有透明颜色,带有警告符号和以下消息:"断点目前不会被击中。没有为此文档加载任何符号。" 。这意味着根据您的"起点",无法获得此代码点。

因此,在您的情况下,当您从App.Web项目中删除应用程序时,Web Api方法正在运行,因为您已将项目附加到IIS,并且启动了Startup.cs,但未通过您的debuging过程那就是断点没有解雇的原因。