(Lưu ý khi muốn triển khai ứng dụng thì triển khai trên VPS vẫn là lựa chọn tối ưu hơn cả)
Khi triển khai mã nguồn .NET Core, bạn sẽ gặp hai dạng file chạy chính:
Vì lý do bảo mật, các dịch vụ hosting tai HOSTVN không cho phép chạy các file thực thi .exe.
Trong trường hợp này, bạn sẽ thay đổi cấu hình để sử dụng file .dll của ứng dụng. Dưới đây là một mẫu cấu hình web.config đầy đủ cho việc triển khai:
Mẫu web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Trong đó:
processPath="dotnet"
: Chỉ ra rằng ứng dụng sẽ được chạy bằng lệnh dotnet
.arguments=".\MyApp.dll"
: Tham số chỉ đường dẫn tới file .dll của ứng dụng.Với .NET Core 3.1 trở lên, bạn có thể khai báo sử dụng file .exe và thêm thông số hostingModel=inprocess
để đảm bảo ứng dụng chạy trong tiến trình của IIS. Dưới đây là một mẫu cấu hình web.config đầy đủ cho việc triển khai:
Mẫu web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath=".\MyApp.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"/>
</system.webServer>
</configuration>
Trong đó:
processPath=".\MyApp.exe"
: Chỉ ra rằng ứng dụng sẽ được chạy trực tiếp từ file .exe.hostingModel="inprocess"
: Thiết lập mô hình hosting inprocess để ứng dụng chạy trong tiến trình của IIS (không vi phạm chính sách chạy các file thực thi .exe trên hosting).Triển khai ứng dụng .NET Core lên hosting Windows có thể thực hiện theo hai cách: sử dụng file .dll hoặc sử dụng file .exe (với hostingModel=inprocess
). Việc chọn cách nào phụ thuộc vào yêu cầu cụ thể của dự án và các giới hạn bảo mật của dịch vụ hosting bạn đang sử dụng.
Chúc bạn triển khai ứng dụng thành công!