您的 ASP.NET 服务器上安装什么?
- .NET 10 LTS SDK,包含 ASP.NET Core 运行时,来自 Ubuntu 24.04 软件包
- 一个 Razor Pages 示例项目。源代码所在的文件夹是 /home/app/uygulama/kaynak,编译输出所在的文件夹是 /home/app/uygulama/yayin
- 一个名为 uygulama 的 systemd 服务,以无特权的 app 用户身份在 Production 环境下运行于 127.0.0.1:5000
- Nginx 作为反向代理,已设置 WebSocket 头,请求体上限为 64 MB
- 由 certbot 为您的 sslip.io 地址获取的 Let's Encrypt 证书,自动续期
- 1 GB 交换空间,外加 git
- 只有 22、80 和 443 端口对外开放,Kestrel 的 5000 端口仅限内部
ASP.NET 需要多大的配置?
微软没有给出 ASP.NET Core 的统一 RAM 数值,因为这取决于您的应用。经验上:运行一个小型已编译应用,1 GB 是个起点。如果要在服务器上运行 dotnet publish,即使有本安装添加的 1 GB 交换空间,2 GB 也更宽裕。对于 Entity Framework 和较繁忙的项目,可以考虑 4 GB。RAM 和 CPU 可以在面板中分别增加;服务器会重启一次,数据和 IP 保持不变。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 中等 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 使用 ASP.NET Core 的 MVC、Razor Pages、Web API 或 Blazor Server 技术构建的各类项目
- 想在 Linux 上运行 .NET、不使用 IIS 的团队
- 用 dotnet publish 构建并把产物发送到自己服务器的流水线
- 客户在土耳其、希望应用从伊斯坦布尔运行的应用
下单之后会发生什么?
- 设定配置并完成付款。
- 您的服务器启动,.NET 和 Nginx 自动安装。在我们的真机测试中,这大约用了 3.5 分钟。
- 在“概览”标签页上打开“网站地址”链接,示例 Razor 页面就会出现。
- 通过 SSH 连接,运行 su - app,带入您的项目,然后运行 dotnet publish -c Release -o ~/uygulama/yayin。
- 以 root 身份,在 /etc/systemd/system/uygulama.service 中,把 ExecStart 一行里的 kaynak.dll 换成您自己的文件。
- 依次运行 systemctl daemon-reload 和 systemctl restart uygulama 这两条命令,然后刷新网站。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 较旧的 .NET Framework 和 Web Forms 应用无法在 Linux 上运行。这台服务器面向 .NET 10 和 ASP.NET Core,所以这类项目需要先移植。
- 只安装了 .NET 10。对于目标为 net8.0 的项目,请提高目标版本、安装对应的运行时,或以自包含方式发布。
- Kestrel 监听 5000 端口。如果您修改它,请同时更新服务文件中的 ASPNETCORE_URLS 和 Nginx 中的 proxy_pass 一行。
- 没有安装数据库。请把连接字符串放在应用的设置中,或作为环境变量放在服务文件里。
- 微软要求把数据保护密钥保存在持久存储中,这样重启后登录 Cookie 依然有效。
- 如果证书无法签发,网站会通过 http 在您的 IP 地址上打开。.NET 和您应用的更新由您自己负责。
ASP.NET 常见问题
ASP.NET 需要多少 RAM?
微软没有给出 ASP.NET Core 的统一 RAM 数值。经验上:小型已编译应用以 1 GB 起步为宜,在服务器上编译用 2 GB,带 Entity Framework 的较繁忙项目用 4 GB。如果不够,可以在面板中升级。
ASP.NET 能在 Linux VPS 上运行吗?
ASP.NET Core 可以。这台服务器在 Ubuntu 24.04 上运行 .NET 10,您的应用跑在 Kestrel 上,由 Nginx 把请求转交给它,所以不需要 IIS。较旧的 .NET Framework 应用则另当别论,因为它们只能在 Windows 上运行。
服务器上是哪个 .NET 版本?
已安装 .NET 10 SDK,运行时随之附带。如果您的目标是其他版本,请安装对应的运行时,或把项目以自包含方式发布,这样它会自带运行时到服务器上。
如何部署我的 ASP.NET 应用?
以 app 用户身份运行 dotnet publish -c Release -o ~/uygulama/yayin,或把发布产物从您的电脑复制到该文件夹。修改 uygulama.service 中的 dll 名称,然后运行 systemctl daemon-reload 和 systemctl restart uygulama。
我的 Web Forms 或 MVC 5 应用能运行吗?
不能。Web Forms 和 MVC 5 需要 .NET Framework,而它只存在于 Windows 上。对于这类应用,请选择 Windows Server 的服务器并输入您自己的许可证,或把项目移植到 ASP.NET Core。
如何把我自己的域名绑定到 ASP.NET 服务器?
把域名的 A 记录指向服务器的 IP 地址,然后运行 certbot --nginx -d yourdomain.com。证书会自动签发并自动续期。
安装了 SQL Server 吗?该用哪个数据库?
没有安装数据库。使用 Entity Framework 时,您可以连接到另一台机器上的 SQL Server,或在这里安装 PostgreSQL 之类的数据库。如果您想要一台单独的服务器,我们也提供预装 PostgreSQL 的服务器。