我正在尝试将仍在ASP.NET RC1(DNX)上的Web应用程序部署到IIS。我浏览了所有的Microsoft文档,但我遇到了问题。应用程序启动时出现此错误:
Application startup exception: System.IO.FileLoadException: Could not load file or assembly 'Web' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
File name: 'Web' ---> Microsoft.Dnx.Compilation.CSharp.RoslynCompilationException: Startup.cs(104,39): DNX,Version=v4.5.1 error CS0012: The type 'Func<,>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
这是什么意思?我可以在我的本地计算机上部署到IIS,我没有任何问题进行开发。但是,只有IIS的服务器不起作用。
如何解决此错误?服务器在Windows Server 2008 R2上,我的本地计算机是Windows 7,如果有帮助的话。
答案 0 :(得分:0)
我能够使用解决方法解决此问题。看起来这是Visual Studio 2015的发布命令的问题。看起来它没有选择发布到Nuget包中。这意味着publish命令输出源文件。因此,文件仍然需要由服务器编译。
我没有找到如何让服务器正确编译文件。但是,我之前只需将代码编译到Nuget包中就可以解决它。这可以通过使用dnu命令行工具来完成。
dnu publish --out %folder% --no-source --include-symbols --runtime dnx-clr-win-x86.1.0.0-rc1-update1 --configuration Release
重要的部分是--no-source
选项,它将打包到Nuget包中。