6

我正在尝试将我的 ASP.NET 5 WebApi 部署到远程服务器(Windows server 2008 R2)并且无法让它与 IIS 一起正确运行。

项目.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)

谢谢您的帮助

4

1 回答 1

22

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

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

您还可以通过运行确保您的项目成功构建dnu build

希望能帮助到你..

于 2015-12-10T21:31:27.840 回答