34.4 二级虚拟目录部署
34.4.1 关于二级虚拟目录
通常我们的站点都是部署在网站的根目录下的,但是有些时候,我们可能将网站根目录下的目录作为 二级站点或子站点,这个时候,就会出现 404 错误了。
这个时候就需要进行一些特殊配置了。
34.4.2 针对在 IIS 网站下添加 Application 情况
版本说明
以下内容仅限 Furion 3.2.0 + 版本使用。
如果网站是在 Site 下面添加 Application 下部署,则遵循以下步骤:
- 添加
Application Pool应用程序池,并设置为非托管模式
- 添加
Application并选择刚刚创建的应用程序池
- 添加应用配置:
{
"SpecificationDocumentSettings": {
"ServerDir": "IIS中应用程序名(Applicaiton)"
}
}
该配置主要是解决 Swagger 出现 404 问题。
个别情况
如果配置之后还 Swagger 还出现不能加载 swagger.json 文件问题,那么需修改启动注册代码:
app.UseInject(string.Empty); // 确保参数是 strng.Empty
34.4.3 针对非 IIS 下部署情况
注意事项
这里是针对 非 IIS 部署使用的!!!
34.4.3.1 配置 AppSettings
我们只需要配置 AppSettings 即可:
{
"AppSettings": {
"VirtualPath": "/虚拟目录"
}
}
34.4.3.2 .NET6 WebApplication 模式下虚拟目录配置
版本说明
以下内容仅限 Furion 3.2.0 + 版本使用。
由于在 .NET6 的 WebApplication 模式下微软底层发生了改变,所以需要使用 app.UseVirtualPath() 包裹 app.UseInject() 和 app.MapRouteControllers():
app.UseVirtualPath(app =>
{
app.UseInject(String.Empty); // 注意 String.Empty 只是例子,可以不填或填其他的,见一分钟入门
app.MapRouteControllers();
});
注意,app.MapRouteControllers() 是替换 app.MapControllers() 的!
34.4.4 反馈与建议
与我们交流
给 Furion 提 Issue。
