DEV机器上不需要Startup.cs,但需要部署

时间:2014-08-19 20:13:28

标签: asp.net-web-api owin

我正在开发一个ASP.NET Web API v2应用程序。我的应用程序在我的DEV机器上工作正常,但是当我将它部署到我的服务器时,会出现以下错误。

The following errors occurred while attempting to load the app.
- No assembly found containing an OwinStartupAttribute.
- No assembly found containing a Startup or [AssemblyName].Startup class.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

在搜索Google,SO和其他网站后,我发现在我的项目中添加了一个默认的Startup.cs类修复了该问题。问题是我不知道如何。

enter image description here

  1. 添加Startup.cs做了什么?
  2. 为什么我的应用程序会在没有Startup.cs的情况下在我的开发机器上编译和运行?
  3. 这似乎涉及OWIN,但我甚至不知道我正在使用任何OWIN功能。

1 个答案:

答案 0 :(得分:3)

这很可能是由于OWIN搜索其入口点(Startup类)的方式。在您的开发环境中,您可能在项目文件夹中有一个具有OWIN Startup类的DLL。该dll未作为部署步骤的一部分进行部署,因此在您部署的位置不存在。

同样的另一个可能性是你使用.config转换并且你已经在DEV配置中定义了一个Startup类,但是没有在你部署的配置中定义。

<appSettings>  
  <add key="owin:appStartup" value="StartupDemo.ProductionStartup" />
</appSettings>

OWIN Startup Class Detection可能会提供信息。

MVC5默认情况下使用OWIN管道,所以它在#34;下面#34;。也许您是从以前的MVC站点迁移出来的,这就是为什么缺少Startup类的原因?

干杯!