使用 {0}.domain.com 格式的 aspboilerplate 多租户配置
aspboilerplate multi-tenant configuration using {0}.domain.com format
我下载了最新的aspboilerplate. In documentation
它列出了 3 个租户解析器。
文档要求添加;
Configuration.Modules.AbpWebCommon().MultiTenancy.DomainFormat = "{0}.mydomain.com";
获取基于域的租户解析。
我正在使用主机文件来模拟实际的 URL。所以,我觉得应用程序配置应该如下所示(除了上面代码更改为 Abp 模块);
"App": {
"ServerRootAddress": "http://server.mydomain.com",
"ClientRootAddress": "http://{0}.mydomain.com",
"CorsOrigins": "...."
},
但是文档没有提到任何与此相关的内容。所以,我不认为文档是完整的。
然后在 IIS 中,我有两个站点。
- API 站点:server.mydomain.com。绑定设置为 server.mydomain.com
- 客户站点:mydomain.com。将为新租户添加新的绑定,例如子域。mydomain.com。所以基本上在用于客户端站点的 IIS 中,可以有许多具有不同子域部分的绑定,但指向同一个站点。
然后我 运行 api 站点 xxxx.web.host.exe。我认为它应该从 appsettings 中选择正确的 url 来收听。但事实并非如此。它显示;
Now listening on: http://localhost:5000
我不确定它来自哪里,因为代码中没有提到它。
如何使用基于子域的租户解析器在 IIS 上将其正确配置为 运行?
实际问题超出了我的想象。简而言之;
- https://edi.wang/post/2018/12/27/path-caveat-with-aspnet-core-22-iis-hosting 是一个导致应用程序一开始就崩溃的问题。原因是它在 Startup() 加载 log4net 配置文件,并且由于 asp.net core 2.2 的工作方式,在 IIS inproc 模式下它找不到文件。
- https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22 这对理解和解决问题有很大帮助。
- 确保在 IIS 中托管时不要混用 32 位和 64 位。
我下载了最新的aspboilerplate. In documentation 它列出了 3 个租户解析器。
文档要求添加;
Configuration.Modules.AbpWebCommon().MultiTenancy.DomainFormat = "{0}.mydomain.com";
获取基于域的租户解析。
我正在使用主机文件来模拟实际的 URL。所以,我觉得应用程序配置应该如下所示(除了上面代码更改为 Abp 模块);
"App": {
"ServerRootAddress": "http://server.mydomain.com",
"ClientRootAddress": "http://{0}.mydomain.com",
"CorsOrigins": "...."
},
但是文档没有提到任何与此相关的内容。所以,我不认为文档是完整的。
然后在 IIS 中,我有两个站点。
- API 站点:server.mydomain.com。绑定设置为 server.mydomain.com
- 客户站点:mydomain.com。将为新租户添加新的绑定,例如子域。mydomain.com。所以基本上在用于客户端站点的 IIS 中,可以有许多具有不同子域部分的绑定,但指向同一个站点。
然后我 运行 api 站点 xxxx.web.host.exe。我认为它应该从 appsettings 中选择正确的 url 来收听。但事实并非如此。它显示;
Now listening on: http://localhost:5000
我不确定它来自哪里,因为代码中没有提到它。
如何使用基于子域的租户解析器在 IIS 上将其正确配置为 运行?
实际问题超出了我的想象。简而言之;
- https://edi.wang/post/2018/12/27/path-caveat-with-aspnet-core-22-iis-hosting 是一个导致应用程序一开始就崩溃的问题。原因是它在 Startup() 加载 log4net 配置文件,并且由于 asp.net core 2.2 的工作方式,在 IIS inproc 模式下它找不到文件。
- https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22 这对理解和解决问题有很大帮助。
- 确保在 IIS 中托管时不要混用 32 位和 64 位。