首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API网关.NET 6WebAPI与UseStaticFiles()错误托管

API网关.NET 6WebAPI与UseStaticFiles()错误托管
EN

Stack Overflow用户
提问于 2022-03-25 17:52:16
回答 1查看 218关注 0票数 0

我们使用Serverless框架和Lambda代理集成方法将一个.NET 6 Web项目部署到API后面的AWS,以在Lambda中运行Web项目。我们通常将相应的SPAs托管在AWS S3之外,但我们决定通过wwwroot文件夹并在Startup.cs中使用UseStaticFiles()来包含/托管后端的角SPA的静态资产。此外,我们正在使用与我们的API相关联的自定义域名(例如dev.myapp.com)。

当我们用"/index.html“(例如https://dev.myapp.com/index.html)向我们的域发出请求时,我们成功地到达和使用了这个角度应用程序,但是当我们不包括"/index.html”(所以只有dev.myapp.com)时,我们得到了错误响应:

代码语言:javascript
复制
{"message":"Missing Authentication Token"}

我认为这可能与Startup.cs中备用文件的配置有关,但这个错误似乎来自于API,而不是.NET应用程序本身。

似乎需要在API中配置一些东西,但还不清楚可能是什么。在serverless.yml中包含Web项目的Lambda函数配置如下:

代码语言:javascript
复制
functions:
    backend-api:
        handler: ABC.API::ABC.API.LambdaEntryPoint::FunctionHandlerAsync
        description: ${self:custom.appConfig.config.stack-description} API for ${opt:stage}
        memorySize: 512
        runtime: dotnet6
        tracing: Active
        timeout: 30
        events:
            - http:
                path: '/{proxy+}'
                method: 'ANY'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 00:29:47

解决方案是显式地为serverless.yml中的根'/‘添加一个额外的事件处理程序

代码语言:javascript
复制
functions:
    backend-api:
        handler: ABC.API::ABC.API.LambdaEntryPoint::FunctionHandlerAsync
        description: ${self:custom.appConfig.config.stack-description} API for ${opt:stage}
        memorySize: 512
        runtime: dotnet6
        tracing: Active
        timeout: 30
        events:
            - http:
                path: '/'
                method: 'ANY'
            - http:
                path: '/{proxy+}'
                method: 'ANY'

我还在app.UseDefaultFiles();中的app.UseStaticFiles();之前添加了Startup.cs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71621207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档