.net swagger 空白

本文介绍了一个关于.NET结合Swagger生成的API文档出现页面空白的问题及解决办法。问题表现为页面不显示内容且控制台报错,涉及Content-Security-Policy的安全策略配置。通过调整web.config文件中的Content-Security-Policy设置解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:.net+swagger做的接口文档,

症状:之前一直好好的,突然出现了页面空白,什么内容也不显示,

浏览器脚本报错如下:

Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-jsSx+sDgVLmAmY6rvZIdJWHsvRzC7eqVVfLQR2IDv0k='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

解决方法:由于系统做过安全测试,为了解决一个低风险问题,在web.config中配置了

Content-Security-Policy 策略,取消该标头即可。

<add name="Content-Security-Policy" value="default-src 'self';" />

问题查找过程

(1)检索.net swagger 空白,没有有意义的资料

(2)测试时发现,在ie浏览器中可以正常显示,在google 内核的,则显示空白

(3)检索上述控制台错误信息,暂未看到与swagger相关的,一般是说明增加一个 <meta>,配置同源策略之类的。本想按照帖子内容,增加一个 <meta>,后来想起,之前在IIS服务器中配置过一个同源策略,取消掉相关配置即可。

顺带鄙视一下,部分收费帖子

### .NET Core 中 Swagger 的部署指南 在.NET Core项目中集成Swagger可以极大地简化API的测试和文档化工作。通过使用Swashbuckle库,能够向Web API项目无缝地添加Swagger支持[^1]。 为了实现这一点,在项目的`Startup.cs`文件中的`ConfigureServices`方法里注册Swagger服务: ```csharp public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // 注册Swagger生成器, 定义一个或多个Swagger文档 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); }); } ``` 接着是在同一类内的`Configure`函数配置HTTP请求管道来启用中间件以响应来自URL路径/api-docs/v1的Swagger JSON端点以及提供交互式的Swagger UI页面访问: ```csharp public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); // 启用中间件服务于生成的Swagger作为JSON终结点。 app.UseSwagger(); // 启用中间件为swagger-ui,指定Swagger JSON终结点。 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); } ``` 完成上述设置之后,启动应用程序并导航至`http://localhost:<port>/swagger`, 将会看到自动生成的API接口列表及其对应的说明文档界面[^2]。 对于生产环境下的部署考虑,则需要注意调整安全性和性能方面的一些参数,比如限制对Swagger UI的公开暴露范围仅限于内部网络或者特定IP地址段;还可以利用缓存机制减少每次请求时重新构建完整的Schema所带来的开销等问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值