我目前正在一個項目中,我想在服務器上使用兩種不同的目的,測試模式和發佈模式。我正在使用AspNet核心和中間件管道來嘗試完成此操作。我希望沿着url中的任何「/ Test」行來做一件事和其他事情來做其他模式。通常我知道如何解決這些問題,因爲AspNet Core中間件允許使用app.Map(「/ Test」,...)映射到路徑,但問題在於它們都使用相同的管道,只是不同的依賴注入/ IoC容器。從我看到ConfigureServices方法在Configure方法之前運行,並且沒有爲每個請求路徑配置要使用的服務。所以我只需要一種方法來獲得相同的管道,但不同的請求對IoC容器使用不同的服務。AspNet核心路由映射與不同的依賴注入
1
A
回答
0
我不會建議你試圖這樣做,你只是讓你的工作更難。
而是使用ASP.NET Core爲您提供的內容:環境特定的配置。爲此,您需要運行兩個不同的應用程序,但安裝程序仍然可以在同一個項目中,只需更改環境變量即可。
爲此,您首先需要一個launchSettings.json
的設置。從文檔
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:40088/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNET_ENV": "Development"
}
},
"web": {
"commandName": "web",
"environmentVariables": {
"Hosting:Environment": "Staging"
}
}
}
}
這裏
實施例的環境設定爲 「分段」。接下來你需要爲它定義一個配置。
using Microsoft.AspNet.Builder;
namespace Environments
{
public class StartupStaging
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
}
namespace Environments
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
}
現在,當您的環境設置爲Production
,該Startup
類將被命名(或者StartupProduction
如果存在的話)。如果您的環境變量設置爲Staging
,則將調用StartupStaging
。
而對於不同的網址...在生產應用程序,將它設置爲
"iisExpress": {
"applicationUrl": "http://example.com/",
"sslPort": 0
}
和測試環境
"iisExpress": {
"applicationUrl": "http://example.com/Test/",
"sslPort": 0
}
代碼/配置的片斷來自於ASP.NET Core Docs拍攝。或者在不同的環境下使用hosting.json
。
hosting.json
{
"server": "Microsoft.AspNet.Server.Kestrel",
"server.urls": "http://example.com/"
}
在我的頭頂,我認爲你也可以有多個文件被稱爲hosting.production.json
等
相關問題
- 1. 自定義路由約束與依賴注入.Net核心
- 2. ASP.NET核心 - 依賴注入
- 3. ASPNET核心RC2預依賴歧義
- 4. 使用ASPNET核心2.0的路由RazorPages
- 5. 依賴注入在ASP.NET核心
- 6. 高級依賴注入在ASP.NET核心
- 7. asp.net核心依賴注入配置
- 8. 在ASP.Net核心依賴注入
- 9. 依賴注入在ASP.NET核心
- 10. 所有ASPNET核心路由去DefaultFiles
- 11. 注入SessionStore的AspNet核心CookieAuthentication
- 12. ASPNET核心註冊服務
- 13. 依賴注入:在對.NET核心注入配置2.0
- 14. .net核心依賴注入與構造函數參數
- 15. 如何導出接口與Asp.Net核心依賴注入
- 16. 使用依賴注入與.NET核心類庫(.NET標準)
- 17. ASP.NET核心數據庫配置與依賴注入問題
- 18. $ routeProvider - 注入相同的依賴,所有路由
- 19. 擴展核心PHP類而不是依賴注入?
- 20. 依賴注入與註解
- 21. IEnumerable的依賴注入<IObjects>由ASP.NET核心中的配置定義
- 22. RavenDB與.NET核心的依賴問題
- 23. 分裂angularjs應用成組件與路由依賴注入
- 24. 依賴注入的異常配置的EntityFramework核心時
- 25. 在ASPNET核心
- 26. 與依賴注入循環依賴
- 27. 依賴注入與循環依賴
- 28. 帶有可選參數的ASP.NET核心依賴注入
- 29. 依賴注入在ASP.net核心中的飛行
- 30. ASP.Net核心MVC:按基類型的依賴注入
你也許可以爲您創造'/ Test'航線第二'ServiceCollection'。不知道是否可以自動注入子路徑。 – poke