21

khi tôi xuất bản ứng dụng web lõi asp.net của mình lên hệ thống tệp cục bộ của mình, nó luôn lấy biến cấu hình sản xuất và biến ASPNETCORE_ENVIRONMENT với giá trị = "Sản xuất".cách đặt ASPNETCORE_ENVIRONMENT để được xem xét xuất bản ứng dụng lõi asp.net?

Tôi nên đặt giá trị của biến ASPNETCORE_ENVIRONMENT ở đâu và ở đâu để nó không chỉ được xem là gỡ lỗi, mà còn được xem là cho xuất bản? tôi đã thử các tùy chọn sau đây mà không thành công:

  • trong cửa sổ thiết lập
  • trong tập tin .pubxml
  • trong launchSettings.json
  • trong project.json
+1

Bạn đọc tài liệu chính thức https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments hoặc hướng dẫn này http://andrewlock.net/how-to-set-the-hosting-environment-in-asp-net-core/? –

+0

http: // stackoverflow.com/questions/37668760/setting-environment-when-publishing-an-mvc-6-web-app – MindingData

Trả lời

14

OPTION1:

Để đặt biến môi trường ASPNETCORE_ENVIRONMENT trong cửa sổ,

dòng lệnh - setx ASPNETCORE_ENVIRONMENT "Development"

PowerShell - $Env:ASPNETCORE_ENVIRONMENT = "Development"

Đối với hệ điều hành khác tham khảo này - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments

OPTION2:

Nếu bạn muốn thiết lập ASPNETCORE_ENVIRONMENT sử dụng web.config sau đó thêm aspNetCore như this-

<configuration> 
    <!-- 
    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380 
    --> 
    <system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
    </handlers> 
    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"> 
     <environmentVariables> 
     <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> 
     </environmentVariables> 
    </aspNetCore> 
    </system.webServer> 
</configuration> 
+7

Cả hai đều là những tùy chọn khủng khiếp. 1) thiết lập này cho toàn bộ hệ điều hành, tôi muốn nó cho mỗi trang web trong IIS. 2) AspNet Core không hỗ trợ chuyển đổi web.config. Làm thế nào để bạn đề nghị web.config được sửa đổi để triển khai? – Kugel

+0

Tham khảo tài liệu chính thức tại đây - https://docs.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module – Sanket

+1

Tài liệu chính thức không cung cấp tùy chọn tốt hơn ;-) – Kugel

2

Bạn nên theo dõi instructions provided in the documentation, sử dụng web.config.

<aspNetCore processPath="dotnet" 
     arguments=".\MyApp.dll" 
     stdoutLogEnabled="false" 
     stdoutLogFile="\\?\%home%\LogFiles\aspnetcore-stdout"> 
    <environmentVariables> 
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" /> 
    <environmentVariable name="CONFIG_DIR" value="f:\application_config" /> 
    </environmentVariables> 
</aspNetCore> 

Lưu ý rằng bạn cũng có thể đặt các biến môi trường khác.

Các module Lõi ASP.NET cho phép bạn chỉ định các biến môi trường cho quá trình quy định trong thuộc tính processPath bằng cách xác định chúng trong một hoặc nhiều phần tử con environmentVariable của một phần tử thu environmentVariables dưới các yếu tố aspNetCore. Biến môi trường được đặt trong phần này được ưu tiên hơn hệ thống biến môi trường cho quy trình.

2

Cách đơn giản để đặt trong phòng thu trực quan IDE. biến

Project> Properties> Debug> Môi trường

enter image description here

Các vấn đề liên quan