无法加载应用程序或执行命令'Microsoft.AspNet.Server.Kestrel'

时间:2015-11-17 12:00:06

标签: iis asp.net-web-api asp.net-core kestrel-http-server

我正在尝试将我的ASP.NET 5 WebApi部署到远程服务器(Windows Server 2008 R2),并且无法使其在IIS中正常运行。

project.json

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "App.Data": "1.0.0-*",
    "App.Model": "1.0.0-*",
    "App.Repository": "1.0.0-*",
    "App.ViewModel": "1.0.0-*",
    "AutoMapper": "4.1.1",
    "Microsoft.AspNet.Authentication": "1.0.0-rc2-16009",
    "Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc2-16009",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc2-16136",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc2-15873",
    "Microsoft.AspNet.Mvc": "6.0.0-rc2-16377",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc2-16017",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-rc2-15932",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc2-15916",
    "Microsoft.Framework.Configuration.Json": "1.0.0-rc1-15666",
    "Microsoft.Framework.Logging": "1.0.0-rc1-15644",
    "Microsoft.Framework.Logging.Console": "1.0.0-rc1-15644",
    "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211120828"
  },

  "commands": {
    "kestrel": "Microsoft.AspNet.Server.Kestrel",
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

当我尝试从浏览器访问应用程序时,我得不到任何回复。当我在服务器上执行web.cmd时,我收到以下错误:

Error: Unable to load application or execute command 'Microsoft.AspNet.Server.Ke
strel'. Available commands: kestrel, web.
System.IO.FileNotFoundException: Le fichier spécifié est introuvable. (Exception
 de HRESULT : 0x80070002)
   à System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)

   à System.Reflection.Assembly.LoadFile(String path)
   à Microsoft.Dnx.Runtime.Loader.LoadContext.LoadFile(String assemblyPath)
   à Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.Load(AssemblyName assemb
lyName, IAssemblyLoadContext loadContext)
   à Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.Load(AssemblyName assemb
lyName)
   à Microsoft.Dnx.Host.LoaderContainer.Load(AssemblyName assemblyName)
   à Microsoft.Dnx.Host.DefaultLoadContext.LoadAssembly(AssemblyName assemblyNam
e)
   à Microsoft.Dnx.Runtime.Loader.AssemblyLoaderCache.GetOrAdd(AssemblyName name
, Func`2 factory)
   à Microsoft.Dnx.Runtime.Loader.LoadContext.LoadAssemblyImpl(AssemblyName asse
mblyName)
   à Microsoft.Dnx.Runtime.Loader.LoadContext.ResolveAssembly(Object sender, Res
olveEventArgs args)
   à System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String as
semblyFullName)

感谢您的帮助

1 个答案:

答案 0 :(得分:22)

确保在目标服务器上安装了所有依赖项。在cmd中运行dnu list以查看所有项目依赖项。

如果未安装其中一些(它们将显示为红色),请运行dnu restore以恢复所有包。

您还可以通过运行dnu build

确保项目成功构建

希望有所帮助......