码迷,mamicode.com
首页 > Web开发 > 详细

为什么在Mac中无法用k web运行ASP.NET 5程序

时间:2015-01-21 13:03:43      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

k web对应的命令如下:

"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:8001"

其中Microsoft.AspNet.Hosting是OWIN Host,与用k kestrel时是一样的。Microsoft.AspNet.Server.WebListener是OWIN Server。

运行k web需要在project.json中添加引用:

"Microsoft.Framework.DependencyInjection": "1.0.0-beta2",
"Microsoft.Framework.DependencyInjection.Autofac": "1.0.0-beta3-10754"

不然会出现错误:

Missing method Microsoft.Framework.DependencyInjection.ServiceCollectionExtensions::AddContextAccessor

k web最终出现的错误是:

System.DllNotFoundException: httpapi.dll

那原因是什么呢?

Microsoft.AspNet.Server.WebListener虽然是一个.NET托管程序,是被 Microsoft.AspNet.Server.WebListener.ServerFactory.Initialize 调用的。但是AspNet.Server.WebListener在 Microsoft.AspNet.Server.WebListener.ServerFactory.Initialize 中调用了 Microsoft.Net.Http.Server.WebListener ,而在Http.Server.WebListener的构造函数中用到了非托管的httpapi.dll:

// Microsoft.Net.Http.Server.WebListener
public WebListener(ILoggerFactory factory)
{
    if (!UnsafeNclNativeMethods.HttpApi.Supported)
    {
        throw new PlatformNotSupportedException();
    }
}

问题就出在这里。 

为什么在Mac中无法用k web运行ASP.NET 5程序

标签:

原文地址:http://www.cnblogs.com/dudu/p/aspnet5-mac-k-web.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!