在重命名ASP.NET项目文件

时间:2015-05-14 16:35:11

标签: asp.net asp.net-web-api owin iis-express

我遇到过需要在基于OWIN的WebAPI网站中更改解决方案和项目名称的情况。在此更改之前,一切都很顺利,据我所知,重命名是成功的,原因如下:

  1. 解决方案构建正常,我的所有单元测试都在本地和我们的TeamCity构建服务器上成功运行
  2. 应用程序在我们的测试服务器(完整的IIS 8)和生产(也是完整的IIS 8)
  3. 上运行良好

    我的问题是,在重命名之后,无论我尝试什么,我在IIS Express中运行时都无法执行Startup类。我怀疑在我的机器上有一些缓存文件夹包含多个Startup类,因为在我们的测试环境中,我需要在开始工作之前删除所有使用以前名称的旧DLL。

    我知道Startup没有执行,因为我的断点没有触发(实际上没有启用,因为VS没有看到加载的符号):

    enter image description here

    这是我到目前为止所尝试的内容:

    • 卸载IIS Express 10.0(我的dev机器上有VS 2015 RC),清除所有IIS文件夹,然后重新安装IIS Express 8
    • 清除我的开发计算机上的所有临时ASP.NET文件夹
    • 清除我自己的解决方案中的所有obj / bin文件夹

    在我的情况下,我在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

2 个答案:

答案 0 :(得分:3)

虽然我无法完全解释为什么解决了这个问题,但我能够通过将我的项目更改为常规bin/文件夹来解决此问题。

我为在原始问题中没有提到这一点而道歉,因为我认为它不相关,但我之前已将我的ASP.NET项目更改为构建到bin\Debugbin\Release,具体取决于配置。这似乎工作得很好,但一旦我改变了项目的名称就引起了这个问题。

答案 1 :(得分:2)

我知道这是旧的,但只是想补充一点,我使用自定义模板跑了过来。在我的情况下,我有一个启动的工作解决方案,使其成为模板,但模板不起作用。

快来找出,这是因为新项目名称中有一个空格。所以添加

[assembly: OwinStartup(typeof(myProjectName.Startup))]

到我现有的启动文件修复它。