OWIN没有启动起来,如果项目没有与IIS Express中设置为启动(OWIN not firin

2019-10-23 03:58发布

我在VS2013与以下设置的解决方案:

  • App.Web(只有静态文件的Web项目)
  • App.Web.API(与OWIN的Web API项目)

这两个项目有一个默认的网址指向自己的本地主机:端口X(我用IIS快递),所以App.Web监听在localhost:2222和APP.Web.API监听在localhost:3333。

我设置了App.Web.API使用OWIN和我加在IIS中autofire了包Microsoft.Owin.Host.SystemWeb。

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

当我在VS2013设置APP.Web.API为“启动项目”断点hitted。

但是,一旦我设定App.Web为“启动项目”,然后从浏览器我做出了App.Web.Api的请求,在启动类断点不再hitted。

我试图按照在网络上发现了一些建议(IIS清理临时文件,使用OWIN attibute等),但它不工作。

这似乎与IIS快递,如果包含它的项目设置为启动项目OWIN只发射了。

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

Answer 1:

你只能有一个项目“设置为启动项目”,在您的解决方案。 该项目将成为你的起点应用程序,你可以在此基础上“起点”来调试应用程序。

当您建立App.Web.API作为启动项目,你就可以在你的Web API的Startup.cs调试应用程序。

当您建立App.Web作为启动项目,您将无法调试在Web API项目的Startup.cs您的应用程序,因为Startup.cs是由您的Web API项目,而不是你App.Web解雇项目。

的东西,可以帮助你的是红色的断点按钮。 如果您在Startup.cs设置一个断点,你开始你的App.Web项目,你会发现,断点有一个透明的颜色,用警告符号及以下消息:“断点将目前尚未受到打击。无符号已加载这个文件“。 。 这意味着,根据您的“起点”,有没有办法得到这个代码点。

所以你的情况,当你从App.Web项目debuged您的应用程序,在Web API方法进行工作,因为你有这个项目已经连接到IIS,并Startup.cs被解雇了,但不是你的调试运行过程中,这就是为什么断点没有被解雇。



文章来源: OWIN not firing up if project not set as Startup with IIS Express