Jef*_*ing 328 asp.net-mvc owin asp.net-mvc-5
我让OwinStartup配置代码完美运行,然后它停止工作.不幸的是,我不确定我做了什么让它停止工作并且很难搞清楚它.
为了确保我已经涵盖了基础知识,我加倍检查以确保我拥有
[assembly:OwinStartup(typeof(WebApplication.Startup))]
Run Code Online (Sandbox Code Playgroud)
正确分配属性并确保我没有owin的appSetting:AutomaticAppStartup设置为false所以我将一个设置为true以保证安全,因为之前没有任何内容.
<add key="owin:AutomaticAppStartup" value="true" />
Run Code Online (Sandbox Code Playgroud)
我也尝试过专门调用appSetting:
<add key="owin:appStartup" value="WebApplication.Startup" />
Run Code Online (Sandbox Code Playgroud)
在它停止工作之前,我将Microsoft.Owin.Security NuGet包升级到2.0.2,所以我尝试将它们恢复到2.0.1(这很痛苦),但它没有改变任何东西.我在项目上安装了WebActivator并使用它来引导其他东西,但我已经在新的WebApplication模板上测试了它并且它在那里工作,所以我不认为那是罪魁祸首.
我还尝试删除我的Startup类并使用Visual Studio在Add New Item中使用OWIN Startup Class类型添加一个新类,并且也没有被调用.接下来我尝试添加第二个Startup类,因为我知道如果定义了多个OwinStartup属性它将抛出异常,但它没有抛出任何异常.
不知道还有什么可以尝试.有什么想法吗?
更新
事实证明Resharper在我用它删除未使用的引用时删除了对Microsoft.Owin.Host.SystemWeb的引用.
Pra*_*raj 727
确保您已Microsoft.Owin.Host.SystemWeb在项目中安装了包.IIS托管应用程序中的启动检测需要此程序包.有关更多信息,请参阅此文章.
Sim*_*ver 61
如果您从较旧的MVC版本升级,请确保您没有
<add key="owin:AutomaticAppStartup" value="false" />
Run Code Online (Sandbox Code Playgroud)
在你的web.config.它会抑制调用启动逻辑.
而是将其更改为 true
<add key="owin:AutomaticAppStartup" value="true" />
Run Code Online (Sandbox Code Playgroud)
我意识到你已经提到了这一点,但有时人们(像我一样)不会阅读整个问题,只是跳到答案......
在某个地方 - 当我升级到MVC 5时,这已经添加了,直到今天我才看到它.
Aar*_*man 50
讨论的原始问题的替代答案 - 欧文"没有解雇".在我的情况下,我花了几个小时认为它没有因为无法在其中设置断点而被解雇.
在visual studio中调试OWIN启动时
IIS Express - 运行"F5"将破坏OWIN启动代码
IIS - 在加载OWIN(和global.asax)代码之后,运行"F5" 不会中断.如果您附加到W3P.exe,您将能够进入它.
Rem*_*tec 26
如果您在Startup课堂上调试代码时遇到问题,我也遇到了这个问题 - 或者我认为我做过了.代码正在解雇,但我相信它是在调试器附加之前发生的,因此您无法在代码上设置断点并查看发生了什么.
您可以通过Configuration在Startup类的方法中抛出异常来证明这一点.
Ras*_*mus 14
调试技巧
如果调试不起作用,请尝试使用IIS Express或尝试使用以下方法进行本地IIS
使用本地IIS
由于某种原因,此方法可以调试此方法:
额外提示
也许这样做会刷新缓存:
在web.config中,使用false值添加optimizeCompilations属性
<compilation debug ="true"... optimizeCompilations ="false">
运行网站
ran*_*ons 12
我有一个类似的问题,清除临时ASP.NET文件修复它.希望这有助于某人.
Ufu*_*arı 11
我有同样的问题.已安装Microsoft.Owin.Host.SystemWeb软件包,但在安装过程中,由于某种原因,NuGet无法将dll添加为引用.确保您的项目具有该参考.如果没有,您可以尝试重新安装:
update-package Microsoft.Owin.Host.SystemWeb -reinstall
Run Code Online (Sandbox Code Playgroud)
我在重新安装时遇到了如下错误,但不知何故它有效:
系统调用失败.(来自HRESULT的异常:0x80010100(RPC_E_SYS_CALL_FAILED))
小智 5
当我将 Owin 添加到现有的 Web 项目时,我遇到了同样的问题。我最终发现问题是由于 web.config 文件中的以下内容造成的。
<assemblies>
<remove assembly="*" />
<add assembly="System.Web.Mvc" />
<add assembly="System.Web.WebPages" />
...
</assemblies>
Run Code Online (Sandbox Code Playgroud)
删除程序集 =“*” 导致了问题。当我删除这一行时,Owin 启动代码就会运行。我最终将其更改为以下内容并且效果完美
<assemblies>
<remove assembly="*" />
<add assembly="Microsoft.Owin.Host.SystemWeb" />
<add assembly="System.Web.Mvc" />
<add assembly="System.Web.WebPages" />
<add assembly="System.Web.Helpers" />
...
</assemblies>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90872 次 |
| 最近记录: |