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


    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();
        }
    }

    问题就出在这里。 

  • 相关阅读:
    Balanced Binary Tree
    Minimum Depth of Binary Tree
    Path Sum
    Flatten Binary Tree to Linked List
    Distinct Subsequences
    Chp3: Stacks and Queue
    Chp2: Linked List
    Populating Next Right Pointers in Each Node
    Valid Palindrome
    Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/dudu/p/aspnet5-mac-k-web.html
Copyright © 2020-2023  润新知