OwinStartup 停止使用 IIS 触发(但仍可使用 IIS Express)

Seb*_*ero 5 c# asp.net iis owin asp.net-web-api2

我有一个托管在 IIS 上的 Web API 2 应用程序。

为了配置 OWIN,它有一个与此类似的启动类:

[assembly: OwinStartup(typeof(Startup))]
namespace Application.Api
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            throw new Exception("Owin startup class fired"); // Added for test pourposes
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该应用程序工作得像一个魅力,直到它停止触发类Startup:配置文件中没有任何更改,没有包更新,文件Microsoft.Owin.Host.SystemWeb.dll存在于bin文件夹中,配置正常,等等。

只是它停止工作,但如果我将项目设置为启动项目并使用IIS Express按F5运行它,启动类就会正确加载。

我检查了其他帖子,可能有原因,但运气不佳:

ETC。

Seb*_*ero 3

似乎是ASPIISTEMP 文件有问题。

因此,为了解决这个问题,我按照以下步骤操作:

  1. Visual Studio中,构建=>干净的解决方案
  2. 关闭Visual Studio .
  3. 删除项目bin文件夹中的所有文件。
  4. 删除项目obj文件夹中的所有文件。
  5. 删除ASP.Net 临时文件:在我的安装中,它们位于: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root 和: 中 C:\Users\[Your User]\AppData\Local\Temp\Temporary ASP.NET Files\
  6. 删除IIS 临时文件您可以找到打开 IIS 管理器并选择.NET Compilation 的位置: 在此输入图像描述 进入程序集组,您将看到设置临时目录在此输入图像描述 (我的安装中的G:\TEMP
  7. 从IIS中删除您的 API 项目站点,然后再次添加
  8. 进入 Visual Studio,Build => Rebuild Solution
  9. 测试一下。

我希望这对某人有帮助;我在这个讨厌的问题上花了很多时间。