本地iis找不到owin启动

时间:2014-08-07 11:03:51

标签: asp.net iis signalr startup owin

我用SignalR(v2.1.1.0)创建了一个新的MVC5 asp.net网站 SignalR部分托管在Web应用程序中。

我添加了一个新的Hub:MainHub.cs

using BackEnd.Models;
using BackEnd.Utils;
using Microsoft.AspNet.SignalR;
using Microsoft.Practices.Unity;

namespace BackEnd.Hubs
{
    public class MainHub : Hub
    {

            // Code
    }
}

然后我通过右键单击项目添加了一个新的StartUp文件 - >添加新的OWIN Statup类'并将其命名为Startup.cs' :

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(BackEnd.Startup))]
namespace BackEnd
{
    public class Startup
    {
        public static Configs.ContainerInjection container;

        public void Configuration(IAppBuilder app)
        {
            container = new Configs.ContainerInjection();
            container.Configure();
            app.MapSignalR();
        }
    }
}

这是我的配置文件:Web.config

<appSettings>
  <add key="owin:AutomaticAppStartup" value="true" />
  <add key="webpages:Version" value="3.0.0.0" />
  <add key="webpages:Enabled" value="false" />
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
...
<system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
  </system.web>

但是当我在本地IIS上启动应用程序时,&#39;配置&#39;在启动文件中不调用方法。但它在IIS Express(localhost:3405)

上启动时确实有效

我使用&#39; DefaultApp Pool&#39;使用Framework v4.0和Integrated Pipeline模式以及&#39; Microsoft.Owin.Host.SystemWeb&#39;正确放置在&#39; / bin&#39;文件夹中。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

安装SystemWeb主机,你会没事的。

Install-Package Microsoft.Owin.Host.SystemWeb

这会安装一个httphandler来调用starup。

答案 1 :(得分:0)

OwinStartupAttribute位于Microsoft.Owin.dll中。你在bin文件夹中有这个吗?您在应用程序bin文件夹中还有其他Owin dll吗?