我刚刚将应用程序升级到RC2并正在测试所有托管方案。我无法弄清楚如何设置每个场景的配置的最佳实践,它们都可以工作。
以下是场景: 1.使用WebListener进行本地调试(我们需要Windows身份验证) 2.使用Kestrel进行本地调试 3.使用IIS Express进行本地调试(+ Kestrel) 4.发布到IIS
我不确定我们是否需要所有这些,但你知道......开发人员和他们的偏好:)
因此,当您将应用程序发布到IIS时,我已将IIS应用程序物理路径设置为wwwroot-folder。 appsettings.json文件在wwwroot之外,因此我可以使用
加载配置文件new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), @"..\"))
这很好用。我还将本地自托管的Kestrel和WebListener工作目录设置为wwwroot,以便在那里应用相同的逻辑。
launchsettings.json
"workingDirectory": "wwwroot",
问题出在IIS Express上。使用IIS Express,当前目录是应用程序根目录(与appsettings.json相同)所以使用当前设置,它找不到设置文件。似乎我无法为IIS Express(?)设置工作目录,这让我想到设置它的首选方法是什么,它可以在所有提到的场景中工作?