⭐️ .NET 要在国内真正发展起来,必须得有一些追逐梦想的人在做着不计付出的事情,而我希望自己能贡献一份微薄之力。 ⭐️
Skip to main content

34.4 二级虚拟目录部署

34.4.1 关于二级虚拟目录

通常我们的站点都是部署在网站的根目录下的,但是有些时候,我们可能将网站根目录下的目录作为二级站点或子站点,这个时候,就会出现 404 错误了。

这个时候就需要进行一些特殊配置了。

34.4.2 针对在 IIS 网站下添加 Application 情况

版本说明

以下内容仅限 Furion 3.2.0 + 版本使用。

如果网站是在 Site 下面添加 Application 下部署,则遵循以下步骤:

  1. 添加 Application Pool 应用程序池,并设置为非托管模式
  1. 添加 Application 并选择刚刚创建的应用程序池


  1. 添加应用配置:
{  "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 + 版本使用。

由于在 .NET6WebApplication 模式下微软底层发生了改变,所以需要使用 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