繁体   English   中英

在IIS Express上运行MVC6 Beta8应用程序

[英]Running MVC6 Beta8 app on IIS Express

我刚刚更新到MVC6 Beta8。 几个小时后修复代码再次编译,我遇到了一个问题,即应用程序无法在IIS Express下运行。 我收到此错误消息:

[TypeLoadException:无法从程序集'Microsoft.Dnx.Host.Clr,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60'加载类型'Microsoft.Dnx.Host.Clr.EntryPoint'。] System.Web.HttpRuntime .HostingInit(HostingEnvironmentFlags hostingFlags,PolicyLevel policyLevel,Exception appDomainCreationException)+303

[HttpException(0x80004005):无法从程序集“Microsoft.Dnx.Host.Clr,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60'。]系统加载”Microsoft.Dnx.Host.Clr.EntryPoint“类型。 Web.HttpRuntime.FirstRequestInit(HttpContext context)+9922864 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+90 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+261

我知道主机架构有变化。 但这是否意味着我们不能再使用IIS express了,或者仅仅是更新或配置更改的问题?

在升级到beta8时,您需要考虑IIS / IIS Express托管模型的一些重大更改。

在project.json文件中,从依赖项中删除它们:

  • “Microsoft.AspNet.Server.IIS”
  • “Microsoft.AspNet.Server.WebListener”

将以下内容添加到依赖项:

  • “Microsoft.AspNet.Server.Kestrel”
  • “Microsoft.AspNet.IISPlatformHandler

最后,在Startup.cs文件中,将以下内容添加到Configure方法:

  • app.UseIISPlatformHandler();

(我假设app是您的IApplicationBuilder的名称,您可以相应地进行调整)。

这会将新的IISPlatformHandler添加到管道并将流量定向到Kestrel服务器,从而绕过IIS和旧的Helios dnx主机。

您可以在Github的公告中了解此更改

以下是我解决问题的方法:

  1. http://www.microsoft.com/en-us/download/details.aspx?id=49442下载并安装最新的WebToolsExtentions
  2. 创建一个新的ASP.NET5 Web应用程序项目
  3. 将文件从旧项目复制到新项目

我无法弄清楚如何修改现有项目。

升级到beta 8后我遇到了同样的问题,并通过从project.json删除以下依赖项来解决它:

"Microsoft.AspNet.Server.IIS": "1.0.0-beta7"
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7"

并添加以下依赖项:

"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8"

我也更新了所有项目引用从beta7beta8

希望这可以帮助。

这是我的方式。 有人可以找到有用的东西。 我将这些行添加到我的project.json中:

"Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",

我改变了命令:

"commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini",
},

对此:

"commands": {
    "web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
    "kestrel": "Microsoft.AspNet.Server.Kestrel",
},

然后dnu restore

现在,您可以使用dnx webdnx kestrel命令运行asp.net应用程序。 这里描述了不同之处: https//github.com/aspnet/Home/wiki/Servers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM