之前的《centos 7中部署.net core 3 preview 版的runtime运行时》介绍的是linux下安装.net core,今天介绍的是windows server安装.net core

一、您得要有个windows server 2008以上(建议windows server 2012 r2)的服务器(建议1核2G以上的配置),推荐在阿里云腾讯云购买,另外自荐魔码网络购买

二、安装宝塔Windows服务器管理面板,下载地址:
https://www.bt.cn/download/windows.html

三、安装iis 8.5

四、下载.net core runtime 2.2.4版本(推荐),下载地址:
https://dotnet.microsoft.com/download

五、(可选)根据需要进行Web服务器配置(控制面板->打开或关闭windows功能 或者 服务器管理器->添加角色和功能)

至此,windows server 2012 r2 安装.net core 2.2.4版本完成,只要发布.net core 2.2版本的web应用都会成功运行。

新代码调试出现“Only one primary key”错误,一时不知道咋解决。按照字面的意思是“只能有1个主键”,所以以为是数据库弄了多个主键!

最终发现问题出现在原来我没有代码中指定主键,解决办法就是在Id定义前面添加1条代码:

[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]

例如:

[SugarTable("User")]
public class UserModel
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    public int Id{get;set;}
    public string UserName{get;set;}
}

随着.net Core 3 Preview 5的发布,.net Core 3也接近正式发布,目前微软计划在2019年9月正式发布.net Core 3,下面是.net 的发布计划

另外下一个版本的.Net将会是一个大更新,直接跳过了4这个版本号而使用了.Net 5 也将于2020年11月正式发布,微软计划把.Net 5打造成一个一统江湖的跨平台产品:桌面开发、web开发、云计算、手机开发、游戏开发,甚至是人工智能。

.net core 3 preview 4 上个月发布,昨天又发布了preview 5,都还没熟悉,现在只能先用用.net core 2.2,以后再升级代码。

本次Preview的重要更新:

Runtime major-version roll-forward support(支持运行时主版本前滚——这个翻译凑合着看)
JSON Serializer and writer updates(Json Serializer和writer 更新)
WPF and WinForms updates(WPF和Winforms更新)
Single EXE publishing(单独发布exe)
Index and Range updates(索引和范围更新)
New SqlClient(新增sqlclient)
New Japanese Era support(新增支持日语Era)
ASP.NET Core 3.0 Preview 5 (asp.net core 3.0 预览版5发布)

目前支持.net core的虚拟主机比较少,目前我都是自己搭建个低配的linux服务器来跑。

还没怎么深入.net core开发,之前做的api接口,一直没弄清楚wwwroot什么作用,这两天建设企业网站程序,才发现不管是views中还是根目录下的图片、css文件都无法加载,于是尝试着将这些文件放到wwwroot目录,居然正常显示了。

所以.net core的wwwroot是用于放置程序、配置、数据库外的需要浏览器加载的资源型文件,比如图片、css、js等,引用直接以wwwroot作为根路径即可

简单来说,修改views中的cshtml文档后,必须重新发布站点才能正常使用,否则会提示

System.InvalidOperationException: Cannot find compilation library location for package ‘Microsoft.AspNet.WebApi.Client’

不知道有什么解决办法

解决办法:

修改.csproj文件

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    .........
  </PropertyGroup>
修改为
<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    .........
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
  </PropertyGroup>

经测试,centos nginx 配置后依然无法使用,直接无法显示

.net core 2.2需要自己创建一个json文件,内容

port.json
{
“server.urls”:”http://domain:8000″
}

修改Program.cs的内容,参考前面的文章。

然后配置好nginx的反向代理(apache也是需要配置),将端口8000映射到80,建议安装个宝塔控制面板,在站点配置中很简单就能设置好了。

但是通过宝塔配置的反向代理发送给服务器的是指定的域名,如果需要根据不同访问域名发送给服务器的是不同的域名,就需要将

proxy_set_header Host 你的域名

修改为

proxy_set_header Host $host;

这样子服务器就会将访问过来的域名透传给程序了

.net core 开发用的sqlite数据库,发布后运行提示 No such table :xxxx,问了度娘才知道是因为data source路径错了,找不到数据库,修改为正确的路径即可!

之所以提示找不到数据表而不是提示找不到数据库是因为系统会自动创建一个sqlite数据库,所以是空库,没有表,自然找不到表了。