精华内容
下载资源
问答
  • Owin Startup 解析 每个 Owin 程序都有 startup ,在这个 startup 里面你可以指定应用程序管道模型中的组件。你可以通过不同的方式来连接你的 startup 和运行时,这些取决于你选择的宿主模型(OwinHost, ...

    Owin Startup 类解析

    每个 Owin 程序都有 startup 类,在这个 startup 类里面你可以指定应用程序管道模型中的组件。你可以通过不同的方式来连接你的 startup 类和运行时,这些取决于你选择的宿主模型(OwinHost, IIS, and IIS-Express)。

    你可以通过下面几种方式来连接你的 startup 类和宿主程序。

    • 命名约定:Katana 会在 namespace 中查找一个叫 Startup 的类。
    • OwinStartup 特性:这是开发者最常用的一种方式,下面的特性将会设置 startup 类到 命名空间 OwinDemo 下面的 Startup 类。OwinStartup 特性会覆盖命名约定。
    [assembly: OwinStartup(typeof(OwinDemo.Startup))]
    • Configuration 文件中的 appSetting 元素,appSetting 元素会覆盖命名约定和 OwinStartup 特性。你可以有多个 startup 类 (每个都使用 OwinStartup 特性) ,可以用下面的配置文件来选择使用哪一个 startup 类。
    <appSettings>  
      <add key="owin:appStartup" value="OwinDemo.Startup2" />
    </appSettings>

    startup.cs 代码

    复制代码
    using System;
    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartup(typeof(OwinDemo.Startup))]
    
    namespace OwinDemo
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {
                    context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, world.");
                });
            }
        }
    
        public class Startup2
        {
            public void Configuration(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {
                    context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, this is Owin startup class 2.");
                });
            }
        }
    }
    复制代码

    F5 运行以后会进入 startup2 类,可以通过浏览器看到结果。

     

    你也在配置文件中指定 startup 类的别名,同时也要在 OwinStartup 特性里设定,然后就会根据别名和 OwinStartup 特性找到对应的 startup 类。

    <appSettings>  
      <add key="owin:appStartup" value="ProductionConfiguration" />       
    </appSettings>
    复制代码
    using System;
    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartup("ProductionConfiguration", typeof(OwinDemo.Startup2))]
    
    namespace OwinDemo
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {
                    context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, world.");
                });
            }
        }
    
        public class Startup2
        {
            public void Configuration(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {
                    context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, this is Owin startup class 2.");
                });
            }
        }
    }
    复制代码

     

    如果要关闭 OWIN startup 发现,那么只需要在 appSetting 里面加入下面的代码

    <add key="owin:AutomaticAppStartup " value="false" />

     

    指定 Owin startup 类的 Configuration 方法

    复制代码
    <add key="owin:appStartup" value="OwinDemo.Startup2.ConfigurationTwo" />
    
    
    public class Startup2
        {
            public void Configuration(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {                context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, this is Owin startup class 2.");
                });
            }
    
            public void ConfigurationTwo(IAppBuilder app)
            {
                // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
                app.Run(context =>
                {
                    context.Response.ContentType = "text/plain";
                    return context.Response.WriteAsync("Hello, this is Owin startup class 2 and ConfigurationTwo.");
                });
            }
        }
    复制代码

    F5 运行以后可以看到结果

     

    web.config 配置文件里有多个 owin:appStartup 值,那么会启用最后一个配置 OwinDemo.Startup2 。

    <appSettings>
        <add key="owin:appStartup" value="OwinDemo.Startup2.ConfigurationTwo" />
        <add key="owin:appStartup" value="OwinDemo.Startup2" />
      </appSettings>

     

    使用  Owinhost.exe

    Nuget 里安装 OwinHost

    导航到你的应用程序文件夹(包含了 web.config 的文件夹),然后运行 Owinhost.exe

    ..\packages\Owinhost<Version>\tools\Owinhost.exe

    最后访问 http://localhost:5000/ ,就可以看到效果了。

     

    也可以通过指定 OwinHost.exe 后面的参数访问不同的 startup 类

    ..\packages\OwinHost.3.1.0\tools\Owinhost.exe OwinDemo.Startup2.ConfigurationTwo

     

    源代码链接:

    链接: http://pan.baidu.com/s/1bOfTRC 密码: xfhk

     

    参考链接:

    https://docs.microsoft.com/zh-cn/aspnet/aspnet/overview/owin-and-katana/owin-startup-class-detection

    展开全文
  • OwinStartup不触发

    2020-06-18 13:21:21
    I had the OwinStartup configuration code working perfectly and then it stopped working. 我的OwinStart

    本文翻译自:OwinStartup not firing

    I had the OwinStartup configuration code working perfectly and then it stopped working. 我的OwinStartup配置代码运行正常,然后停止运行。 Unfortunately I'm not sure exactly what I did to get it to stop working and am having a really hard time figuring it out. 不幸的是,我不确定到底要怎么做才能使其停止工作,并且很难弄清楚它。

    To make sure I have the basics covered, I doubled checked to make sure the I have the 为了确保我了解基本知识,我仔细检查了一下以确保

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

    attribute assigned properly and made sure that I don't have an appSetting for owin:AutomaticAppStartup that is set to false so I made one set to true to be safe as there was nothing there before. 属性已正确分配,并确保我没有将owin:AutomaticAppStartup的appSetting设置为false,所以我将其中之一设置为true是安全的,因为之前没有任何内容。

    <add key="owin:AutomaticAppStartup" value="true" />
    

    I also tried specifically calling out the appSetting: 我还尝试专门调出appSetting:

    <add key="owin:appStartup" value="WebApplication.Startup" />
    

    Before it stopped working I upgraded the Microsoft.Owin.Security NuGet packages to 2.0.2, so I tried reverting them to 2.0.1 (that was a pain) but it didn't change anything. 在它停止工作之前,我将Microsoft.Owin.Security NuGet软件包升级到2.0.2,因此我尝试将它们还原到2.0.1(这很痛苦),但是它没有任何改变。 I have WebActivator installed on the project and am using that to bootstrap other things but I've tested that on a fresh WebApplication template and it works there so I don't think that is the culprit. 我在项目上安装了WebActivator,并正在使用它来引导其他内容,但是我已经在新的WebApplication模板上对其进行了测试,并且该模板可以在其中工作,所以我认为这不是罪魁祸首。

    I also tried removing my Startup class and using Visual Studio to add a new one using the OWIN Startup Class type in Add New Item and that isn't getting called either. 我还尝试删除了Startup类,并使用Visual Studio在“添加新项”中使用OWIN Startup类类型添加了一个新类,但没有一个被调用。 Next I tried adding a second Startup class since I know it will throw an exception if there is more than one OwinStartup attributes defined, but it isn't throwing any exception there. 接下来,我尝试添加第二个Startup类,因为我知道如果定义了多个OwinStartup属性,它将引发一个异常,但是在那里不会引发任何异常。

    Not sure what else to try. 不知道还有什么尝试。 Any thoughts? 有什么想法吗?

    Update 更新资料

    Turns out that Resharper removed the reference to Microsoft.Owin.Host.SystemWeb when I used it to remove unused references. 事实证明,当我使用Resharper删除未使用的引用时,它删除了对Microsoft.Owin.Host.SystemWeb的引用。


    #1楼

    参考:https://stackoom.com/question/1Mlyg/OwinStartup不触发


    #2楼

    Make sure you have installed Microsoft.Owin.Host.SystemWeb package in the project. 确保已在项目中安装了Microsoft.Owin.Host.SystemWeb软件包。 This package is needed for startup detection in IIS hosted applications. 在IIS托管的应用程序中启动检测需要此软件包。 For more information you can refer to this article . 有关更多信息,请参考本文


    #3楼

    Alternative answer to the original problem discussed - Owin "not firing." 讨论的原始问题的替代答案-奥文“不开枪”。 In my case I spent hours thinking it wasn't firing due to being unable to set a breakpoint in it. 以我为例,我花了数小时以为它无法触发,因为无法在其中设置断点。

    When debugging OWIN startup in visual studio 在Visual Studio中调试OWIN启动时

    • IIS Express - Running "F5" will break on the OWIN startup code IIS Express-运行“ F5”将在OWIN启动代码上中断

    • IIS - Running "F5" will not break until after OWIN (and global.asax) code is loaded. IIS-在加载OWIN(和global.asax)代码之后,运行“ F5” 不会中断。 If you attach to W3P.exe you will be able to step into it. 如果您附加到W3P.exe,则可以进入它。


    #4楼

    If you are having trouble debugging the code in the Startup class, I have also had this problem - or I thought I did. 如果您在调试Startup类中的代码时遇到问题,那么我也有这个问题-或我以为是。 The code was firing but I believe it happens before the debugger has attached so you cannot set breakpoints on the code and see what is happening. 代码正在触发,但是我相信它是在调试器附加之前发生的,因此您无法在代码上设置断点并查看正在发生的情况。

    You can prove this by throwing an exception in the Configuration method of the Startup class. 您可以通过在Startup类的Configuration方法中引发异常来证明这一点。


    #5楼

    I had a similar issue to this and clearing Temporary ASP.NET Files fixed it. 我对此有类似的问题,并且清除了“临时ASP.NET文件”后将其修复。 Hope this helps someone. 希望这对某人有帮助。


    #6楼

    If you've upgraded from an older MVC version make sure you don't have 如果您是从较旧的MVC版本升级的,请确保没有

      <add key="owin:AutomaticAppStartup" value="false" />
    

    in your web.config . 在您的web.config It will suppress calling the startup logic. 它将禁止调用启动逻辑。

    Instead change it to true 而是将其更改为true

      <add key="owin:AutomaticAppStartup" value="true" />
    

    I realize you already mentioned this but sometimes people (like me) don't read the whole question and just jump to the answers... 我意识到您已经提到了这个问题,但是有时候(像我这样的人)没有读完整的问题,而只是跳到答案...

    Somewhere along the line - when I upgraded to MVC 5 this got added and I never saw it until today. 沿线的某个地方-当我升级到MVC 5时,添加了它,直到今天我才看到它。

    展开全文
  • OwinStartup not firing

    2019-01-28 14:56:00
    https://stackoverflow.com/questions/20203982/owinstartup-not-firing 缺少依赖 Make sure you have installed Microsoft.Owin.Host.SystemWeb package in the project. This package is needed for startup ...

    https://stackoverflow.com/questions/20203982/owinstartup-not-firing

    缺少依赖

    Make sure you have installed Microsoft.Owin.Host.SystemWeb package in the project. This package is needed for startup detection in IIS hosted applications. For more information you can refer to this article.

     

     
    Do you have Microsoft.Owin.Host.Systemweb package installed in this application. Make sure this dll is also part of the bin folder?
     

    配置问题

     
     

    If you've upgraded from an older MVC version make sure you don't have

      <add key="owin:AutomaticAppStartup" value="false" />

    in your web.config. It will suppress calling the startup logic.

    Instead change it to true

      <add key="owin:AutomaticAppStartup" value="true" />

    I realize you already mentioned this but sometimes people (like me) don't read the whole question and just jump to the answers...

    Somewhere along the line - when I upgraded to MVC 5 this got added and I never saw it until today.

    可以直接删除这个配置

    转载于:https://www.cnblogs.com/chucklu/p/10330236.html

    展开全文
  • - 程序集“WebService”中发现的引用启动类型“WebService.Startup”的 OwinStartup 属性与程序集“WebAdmin”中引用启动类型“WebAdmin.Startup”的属性冲突,因为它们具有相同的 FriendlyName“”。请删除或重命名...

      尝试加载应用时出现了以下错误。
    - 程序集“WebService”中发现的引用启动类型“WebService.Startup”的 OwinStartup 属性与程序集“WebAdmin”中引用启动类型“WebAdmin.Startup”的属性冲突,因为它们具有相同的 FriendlyName“”。请删除或重命名其中一个属性,或直接引用所需的类型。
    若要禁用 OWIN 启动发现,请在 web.config 中为 appSetting owin:AutomaticAppStartup 添加值 "false"。
    若要指定 OWIN 启动程序集、类或方法,请在 web.config 中为 appSetting owin:AppStartup 添加完全限定的启动类或配置方法名称。

     

     

    相信大家在调试过程中也碰到过类似的问题,度娘后,基本的解决方案都是一样的,如下:

    在web.config文件中添加一下文字就ok了

    <add key="owin:appStartup" value="false" />
    <add key="owin:AutomaticAppStartup" value="false" />

     

    我也尝试过此方法,添加后,又引发了其他的错误,首先不管这个是不是真正的能解决问题,他这种方式只是在逃避问题,设置为禁用 OWIN 启动发现问题就不存在了吗!!

     

    最终自己搞清思路,没有使用上面的方法,从根本上解决了问题。

     

    解决方法:检查一下启动项目是否引用了另一个项目的情况(WebService项目引用了WebAdmin),如果有,就取消引用,我是这么解决掉的,希望能对大家有所帮助。

    展开全文
  • 命名约定 Katana在程序集内的程序集名称空间下查找一个叫做...[assembly: OwinStartup(typeof(OwinConsoleApp.Startup))] 通过配置文件 <add key="owin:appStartup" value="OwinConsoleApp.Startup1" ...
  • The following errors occurred while attempting to load the app. - No assembly found containing an ...- No assembly found containing a Startup or [AssemblyName].Startup class. To dis...
  • 项目中已经存在如下初始化配置 using Microsoft.Owin; using Owin; [assembly: OwinStartupAttribute(typeof(WeiXin.Web.Startup))] namespace WeiXin.Web { public partial class S...
  • 编译项目时OwinStartup冲突的解决办法

    千次阅读 2017-04-26 12:18:01
    最近在开发项目时,碰到了一个头痛的问题,原本...由报错信息可以推测出,要启动的网站项目跟后台的启动Startup类属性冲突了。之前网上百度各种查找资料也只是简单介绍了一这个OwinStartupAttribute类和AppBuilder类。
  • Owin and Startup class

    2019-01-11 15:25:00
    Create an ASP.NET Web App using OWIN Startup 转载于:https://www.cnblogs.com/chucklu/p/10255341.htm...
  • OWIN启动检查

    2019-10-05 00:31:37
    参考文献 每个OWIN的应用都会有个启动,在这个中可以定义作用于web应用管道的组件。启动的检查有以下几种方式: 1. Naming Convention: ...2. OwinStartup Attribute(推荐): [assembly: OwinStartup(typeof(...
  • owin-startup方法

    2016-08-04 15:31:00
    owin在根目录下有这个startup.cs文件,里面有个startup方法,这个和global.asax有什么区别呢? 测试一下执行顺序,是先执行了global.asax文件,再执行了startup.cs这个文件中的startup方法 public partial class ...
  • owin启动事项

    2018-02-11 00:50:00
    在上下文中找不到 owin.Environment 项 owin没有启动。 尝试加载应用时出现了以下错误。- 找不到包含 OwinStartupAttribute 的程序集 ...[assembly: OwinStartup(typeof(命名空间.Startup类))] 如下: ...
  • OWIN启动检测

    2017-04-04 15:51:00
    每个OWIN应用程序都有一个启动,可以在这个里为应用程序管道指定组件。有不同的方式可以将启动与运行时关联起来,这依赖...命名约定:Katana在匹配的程序集或全局命名空间中查找名为Startup。 OwinStartu...
  • Owin中间件动手做

    2017-11-16 17:09:18
    准备工作 首先通过VisualStudio创建一个控制台应用 然后添加Owin的Nuget包引用 需要的包如下 Owin Microsoft.Owin Microsoft.Owin.Hosting ...编写OwinStartup类 public class Startup {
  • 我新建的项目没有运行这个初始,可能因为的命名空间包含“点”,所以项目创建后Global.asax的的Inherits属性少了一节,然后我又引入了Owin,所以导致直接运行了OwinStartUp,而没有报错。 所以该下Inheri...
  • Owin搭建webapi的http服务器 1、新建netformework ...2、选择项目ConsoleTestOWIN,右键添加OWIN Startup 代码如下: using System.Web.Http; using Microsoft.Owin; using Owin; [assembly: OwinSta.
  • 1. Install-Package Microsoft.AspNet.WebApi.OwinSelfHost ...2. 建立OWIN Startup类 public void Configuration(IAppBuilder app) { HttpConfiguration config = new HttpConfiguration(); ...
  • 1、新建空白web项目 ...OWIN Startup类(此时会自动下载owin,放在Packages里) 3、在Startup中输入 public void Configuration(IAppBuilder app) { //创建一个HTTP的实例配置 HttpConfigurat...
  • 一不小心写了个WEB服务器 快刀斩乱麻之 Katana ...OWIN的全称是Open Web Interface For .Net。 OWIN提供的只是一种规范,而没有具体实现。其目的是在web服务器和应用程序组件之间隔离出一个抽...
  • startUp类和global.asax.cs类 上下文OwinContext。 上下文是连接两个对象之间的操作的类。 app.CreatePerOwinContext(ApplicationDbContext.Create);//在这里就创建数据库上下文。 看下图Create()方法,里面...
  • //启动startup类 //是否自动启动startup类 如果有必须去掉,或者改成true 2.检查是否缺少nuget包 Microsoft.Owin.Host.SystemWeb 这个包里面好像含有托管启动的有关的东西,所以不能缺少 参考链接 ...
  • OWIN启动项的检测

    2015-05-13 11:44:00
    命名约定 Katana在命名空间内查找StartUp类 OwinStartup Attribute [assembly: OwinStartup(typeof(StartupDemo.TestStartup))] 在Configuration文件中设置appSetting <appSettings> <ad...
  • OWin

    2015-03-13 13:52:00
    什么是 OWIN ?  OWIN的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦, 鼓励为 .NET Web 应用开发简单...
  • Owin

    2015-08-09 22:23:00
    Owin应用程序代理using AppFunc=Func<IDictionary<string,object>,Task>; IDictionary<string,object>环境变量,贯穿整个处理流程 Microsoft.Owin.Host.SystemWeb可以接管IIS请求(App>...
  • Owin与mvc

    2015-07-05 23:07:00
    学习链接 ... 第一部分: 直接表达式方法 [assembly: OwinStartup(typeof(OwinTest.Startup))] namespace OwinTest { public class Startup { public ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,974
精华内容 789
关键字:

owinstartup类