比来项目中,测验考试使用asp.net core开发,在部署的时候,考虑现有硬件,只能部署在windows上,linux处事器暂时没有。
部署注意事项代码中启用iis和Kestrel
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseApplicationInsights() .Build(); }
在处事端安置
.NET Core Windows Server 托管绑缚包
绑缚包可安置 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块。 该模块创建 IIS 与 Kestrel 处事器之间的反向代办代理。 如果系统没有 Internet 连接,,请先获取并安置 Microsoft Visual C++ 2015 Redistributable,再安置 .NET Core Windows Server 托管绑缚包。
重启系统,或屈从令提示符处依次执行 net stop was /y 和 net start w3svc。 从头启动 IIS 将拔取安置措施对系统 PATH 所作的变动。
颁布
使用vs颁布或者使用命令,这里由于使用vs2017开发,就直接用vs颁布了
在处事端新建站点
改削应用池CLR为No Managed Code
可以下面新建子站点test
确认进程模型标识拥有适当的权限。
如果将应用池的默认标识(“进程模型” > “标识”)从 ApplicationPoolIdentity 变动为另一标识,请验证新标识拥有所需的权限,可访谒应用的文件夹、数据库和其他所需资源。例如,应用池需要对文件夹的读取和写入权限,以便应用在此中读取和写入文件。
常见错误
如果通过ip和端口访谒,报500错误,但在处事器上 通过dotnet \xxxxx.dll可以启动kestrel,并可以通过http:\\localhost:5000进行访谒,一般可以通过改削站点目录权限进行解决。至少可以读写的权限。
其他错误,可以参考
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/troubleshoot