之前的《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应用都会成功运行。

ResellerClub能在中国落地开花主要还是他们的低价域名政策,而且是类似三大电信服务商的那种新代理超低价,老代理偶尔享受到的代理价不如新代理的价格。

我差不多从2008年就开始开设了resellerclub的账户,当时还没开设中国站,除了域名外,他们的虚拟主机控制面板就是灾难性的超级落后的控制面板,反馈了无数次,就是不改,终于过了几年终于用了Plesk、Cpanel控制面板作为主机管理系统,再后来慢慢的产品线完善起来,也入驻了中国地区。

原本忽略掉他们的喜新厌旧的营销方案,还是可以保持我们这些老代理不流失的,结果这几个月开始各种作死:

1、莫名其妙多了个账户管理费,本身ResellerClub的充值就要被扣去一定的手续费的,2018年底居然开始根据充值金额收取一定比例的账户管理费,这个应该是闻所未闻的政策。

2、(应该是为了增加利润,)将之前的虚拟主机+企业邮箱套餐分拆成主机和邮箱2个独立的产品,用户需要分别续费,正常情况这种政策应该是针对新开主机而不不应该落实到之前已开通的账户,然而奇葩的是他们居然将我账户内所有已经成交的客户的主机、邮局分拆开(代理商成本增加了邮箱续费成本,也可以选择不续费) 了,这个我也忍了

3、最近几个月,账户总是莫名其妙的出现客户的主机突然只剩下1个月就过期的问题,无意中登录账户才发现他们居然擅自将客户未到期的主机剩余使用时间折算成余额退款到余额账户里面,主机不管剩余多久的有效期都统一变成了只剩下1个月,这种神操作简直了,还好发现了,不然客户的网站数据因为过期而删除应该追究谁的责任呢?反正客户找我是没跑了,我找谁呢?

4、刚刚又收到了几封邮件是关于Mysql数据库密码机制升级的,大意就是我客户的主机使用16位的hash加密,现在需要升级为41位加密方式,15天后如果没修改将显示Mysql连接错误。作为主机服务商,能擅自修改客户程序代码或者数据库密码么?显然是不能的,所以我们只能通知客户修改,然而客户的网站做了好多年了,当时做网站的人联系不上的,最终客户只能等待显示mysql错误。

天了噜的,这种自以为是、自我为中心的服务商你们见过几个?这种不专业的服务商,我估计也只能搞搞域名这种简单明了的业务了,否则代理商怎么死的也不知道了。

但是现在的域名注册市场真的有利润可图么?答案是否定的

ResellerClub中国的服务评价总结:

1、主机评分:3分(主机算是比较稳定,但是人为的各种不确定)

2、主机推荐:不太推荐

3、服务评分:2分

4、客户体验:超级无敌不好,一帮擅作主张(擅自将客户主机退款重设到期日期)、出尔反尔(主机老客户惨遭分割主机套餐)的运营人员经营的中国区业务,着实让我心惊肉跳!

新代码调试出现“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数据库,所以是空库,没有表,自然找不到表了。