登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
开源项目
>
WEB应用开发
>
Web开发框架
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
9.9K
Star
14.5K
Fork
4.2K
GVP
dotNET China
/
Furion
代码
Issues
0
Pull Requests
0
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
Furion.Template.RazorWithWebApi::3.0.6 二级目录部署报错404
已完成
#I4PZ0C
潇湘夜雨
创建于
2022-01-08 23:30
### 项目模板描述 我的项目是从官网下载的,具体下载模板如下: dotnet new --install Furion.Template.RazorWithWebApi::3.0.6 dotnet new furionrazorapi -n ZKHK ### 开发部署环境 visual studio版本:vs2022 IIS版本:10.0.22000.376 IIS应用程序池:无托管代码,.Net CLR版本 v4.0.30319,(经典,集成),等等各种方法都试过了,均存在以下描述的问题,期望协助解决IIS二级虚拟目录部署存在的问题。 我原来使用.Net5 Funrion 2.19.1没有二级虚拟目录部署的问题,但是使用最新的.Net6 Furion3.0.6后就存在如下描述的IIS二级虚拟目录存在的问题。 ### Furion 版本号 版本号:.NET6 RazorWithWebApi::3.0.6 ### Web 项目类型 - [X] WebApi - [ ] Mvc - [x] Razor Pages - [ ] Blazor Server - [ ] MinApp --- ### 描述你的问题 问题一:二级虚拟目录部署报错:404,,一级目录部署没有页面加载不出来的问题(唯一的问题是:logo.png加载不出来)。 注:项目已经配置过 ``` "AppSettings": { "VirtualPath": "/wowo" } ```     --- 问题二:app.UseUnifyResultStatusCodes();//即使配置此中间件,但是IIS二级虚拟目录部署401 没有响应报文(一级目录部署没有问题, 注:此Swagger界面为我原来的项目效果。具体的Furion版本我页忘记了(删除了) 后来从官网下载的最新项目后,项目的版本为Furion3.0.6,就出现二级目录部署出问题了)  期望:我期望IIS二级虚拟目录部署 在无授权报401的时候 做如下响应:  问题三:二级目录部署 return Forbid(),return NotFound() 等 都找不到虚拟目录 问题四:抛出异常,但是Error错误页无法捕获正确的异常错误消息(全局异常过滤器可以捕获到正确的异常消息,但是获取到两条异常,但是我项目简单,确定只有一条异常,可全局过滤器却获取到了两条,我怀疑是内置的AddFriendlyException()抛出了以下异常) 之前我在Services.AddRazorPages()后面加了.AddFriendlyException()中间件,全局异常过滤器获取到上面提到的两条异常 但是后来我去掉.AddFriendlyException()中间件,全局异常过滤器就只获取到了一条正确的异常过 但是Error错误页都只获取到了下面这条错误的异常:  测试除以0的异常,期望Error错误页面得到的异常消息是:Attempted to divide by zero. 可是异常错误页面获取到的异常消息是:Object reference not set to an instance of an object.  异常堆栈信息: NullReferenceException: Object reference not set to an instance of an object. Furion.UnifyResult.UnifyContext.GetExceptionMetadata(ExceptionContext context) Microsoft.AspNetCore.Mvc.Filters.FriendlyExceptionFilter.OnExceptionAsync(ExceptionContext context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in MiniProfilerMiddleware.cs Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext) Furion.UnifyResult.UnifyResultStatusCodesMiddleware.InvokeAsync(HttpContext context) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) Show raw exception details System.NullReferenceException: Object reference not set to an instance of an object. at Furion.UnifyResult.UnifyContext.GetExceptionMetadata(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Filters.FriendlyExceptionFilter.OnExceptionAsync(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in C:\projects\dotnet\src\MiniProfiler.AspNetCore\MiniProfilerMiddleware.cs:line 103 at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext) at Furion.UnifyResult.UnifyResultStatusCodesMiddleware.InvokeAsync(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) 问题五:请教问题 我的项目本意是为外界提供API,但是我ZKHK.Web.Entr是我自己的web网站,需要用户登录, 当项目作为api使用的时候,外界请求我的api,用jwt进行认证授权, 但项目作为web网站使用的时候,用户登录使用cookies认证授权 问题: 1、当作为api使用的时候,请求我一个不存在的API的时候,按照道理我应该响应 { "statusCode": 404, "data": "null", "succeeded": false, "errors": "找不到api", "extras": "string", "timestamp": xxxx } 2、当作为自己web项目使用的时候,请求一个不存在的页面的时候,应该跳转到404错误页。 请问我具体应该怎么做? ### 异常堆栈信息 无 --- ### 测试项目代码 您的代码下载地址? 项目下载地址:https://gitee.com/fanbin168/zkhk.git --- ### 数据库信息 - [ ] Sqlite - [x] SqlServer - [ ] Mysql - [ ] Oracle - [ ] PGSql - [ ] Firebird - [ ] Cosmos --- ### 期待结果 解决IIS二级虚拟目录部署的问题 ---
### 项目模板描述 我的项目是从官网下载的,具体下载模板如下: dotnet new --install Furion.Template.RazorWithWebApi::3.0.6 dotnet new furionrazorapi -n ZKHK ### 开发部署环境 visual studio版本:vs2022 IIS版本:10.0.22000.376 IIS应用程序池:无托管代码,.Net CLR版本 v4.0.30319,(经典,集成),等等各种方法都试过了,均存在以下描述的问题,期望协助解决IIS二级虚拟目录部署存在的问题。 我原来使用.Net5 Funrion 2.19.1没有二级虚拟目录部署的问题,但是使用最新的.Net6 Furion3.0.6后就存在如下描述的IIS二级虚拟目录存在的问题。 ### Furion 版本号 版本号:.NET6 RazorWithWebApi::3.0.6 ### Web 项目类型 - [X] WebApi - [ ] Mvc - [x] Razor Pages - [ ] Blazor Server - [ ] MinApp --- ### 描述你的问题 问题一:二级虚拟目录部署报错:404,,一级目录部署没有页面加载不出来的问题(唯一的问题是:logo.png加载不出来)。 注:项目已经配置过 ``` "AppSettings": { "VirtualPath": "/wowo" } ```     --- 问题二:app.UseUnifyResultStatusCodes();//即使配置此中间件,但是IIS二级虚拟目录部署401 没有响应报文(一级目录部署没有问题, 注:此Swagger界面为我原来的项目效果。具体的Furion版本我页忘记了(删除了) 后来从官网下载的最新项目后,项目的版本为Furion3.0.6,就出现二级目录部署出问题了)  期望:我期望IIS二级虚拟目录部署 在无授权报401的时候 做如下响应:  问题三:二级目录部署 return Forbid(),return NotFound() 等 都找不到虚拟目录 问题四:抛出异常,但是Error错误页无法捕获正确的异常错误消息(全局异常过滤器可以捕获到正确的异常消息,但是获取到两条异常,但是我项目简单,确定只有一条异常,可全局过滤器却获取到了两条,我怀疑是内置的AddFriendlyException()抛出了以下异常) 之前我在Services.AddRazorPages()后面加了.AddFriendlyException()中间件,全局异常过滤器获取到上面提到的两条异常 但是后来我去掉.AddFriendlyException()中间件,全局异常过滤器就只获取到了一条正确的异常过 但是Error错误页都只获取到了下面这条错误的异常:  测试除以0的异常,期望Error错误页面得到的异常消息是:Attempted to divide by zero. 可是异常错误页面获取到的异常消息是:Object reference not set to an instance of an object.  异常堆栈信息: NullReferenceException: Object reference not set to an instance of an object. Furion.UnifyResult.UnifyContext.GetExceptionMetadata(ExceptionContext context) Microsoft.AspNetCore.Mvc.Filters.FriendlyExceptionFilter.OnExceptionAsync(ExceptionContext context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in MiniProfilerMiddleware.cs Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext) Furion.UnifyResult.UnifyResultStatusCodesMiddleware.InvokeAsync(HttpContext context) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) Show raw exception details System.NullReferenceException: Object reference not set to an instance of an object. at Furion.UnifyResult.UnifyContext.GetExceptionMetadata(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Filters.FriendlyExceptionFilter.OnExceptionAsync(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in C:\projects\dotnet\src\MiniProfiler.AspNetCore\MiniProfilerMiddleware.cs:line 103 at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext) at Furion.UnifyResult.UnifyResultStatusCodesMiddleware.InvokeAsync(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) 问题五:请教问题 我的项目本意是为外界提供API,但是我ZKHK.Web.Entr是我自己的web网站,需要用户登录, 当项目作为api使用的时候,外界请求我的api,用jwt进行认证授权, 但项目作为web网站使用的时候,用户登录使用cookies认证授权 问题: 1、当作为api使用的时候,请求我一个不存在的API的时候,按照道理我应该响应 { "statusCode": 404, "data": "null", "succeeded": false, "errors": "找不到api", "extras": "string", "timestamp": xxxx } 2、当作为自己web项目使用的时候,请求一个不存在的页面的时候,应该跳转到404错误页。 请问我具体应该怎么做? ### 异常堆栈信息 无 --- ### 测试项目代码 您的代码下载地址? 项目下载地址:https://gitee.com/fanbin168/zkhk.git --- ### 数据库信息 - [ ] Sqlite - [x] SqlServer - [ ] Mysql - [ ] Oracle - [ ] PGSql - [ ] Firebird - [ ] Cosmos --- ### 期待结果 解决IIS二级虚拟目录部署的问题 ---
评论 (
5
)
登录
后才可以发表评论
状态
已完成
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(2)
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册