我遇到过需要在基于OWIN的WebAPI网站中更改解决方案和项目名称的情况。在此更改之前,一切都很顺利,据我所知,重命名是成功的,原因如下:
我的问题是,在重命名之后,无论我尝试什么,我在IIS Express中运行时都无法执行Startup类。我怀疑在我的机器上有一些缓存文件夹包含多个Startup类,因为在我们的测试环境中,我需要在开始工作之前删除所有使用以前名称的旧DLL。
我知道Startup没有执行,因为我的断点没有触发(实际上没有启用,因为VS没有看到加载的符号):
这是我到目前为止所尝试的内容:
在我的情况下,我在Startup.cs中使用以下内容指定Startup类:
[assembly: OwinStartup(typeof(Startup))]
...但是,在我尝试重命名解决方案和项目之前,这一切都运行得很好。我不认为这是一般的IIS Express问题,因为我可以在本地成功运行其他基于OWIN的解决方案(例如,我们的IdentityServer3的实现)而没有问题......虽然该解决方案不需要任何名称变化。
使用IIS Express还有其他方面可能会因更改解决方案或项目文件的名称而被绊倒吗?
作为参考,我已经检查了以下可能的原因(没有任何运气): - OwinStartup not Starting ... Why? - OWIN Startup Class Missing - ASP.NET Temporary files cleanup - OwinStartup not firing
答案 0 :(得分:3)
虽然我无法完全解释为什么解决了这个问题,但我能够通过将我的项目更改为常规bin/
文件夹来解决此问题。
我为在原始问题中没有提到这一点而道歉,因为我认为它不相关,但我之前已将我的ASP.NET项目更改为构建到bin\Debug
和bin\Release
,具体取决于配置。这似乎工作得很好,但一旦我改变了项目的名称就引起了这个问题。
答案 1 :(得分:2)
我知道这是旧的,但只是想补充一点,我使用自定义模板跑了过来。在我的情况下,我有一个启动的工作解决方案,使其成为模板,但模板不起作用。
快来找出,这是因为新项目名称中有一个空格。所以添加
[assembly: OwinStartup(typeof(myProjectName.Startup))]
到我现有的启动文件修复它。