首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP错误415不支持特定服务器上的媒体类型-如何找到问题?

HTTP错误415不支持特定服务器上的媒体类型-如何找到问题?
EN

Stack Overflow用户
提问于 2022-11-07 21:09:21
回答 1查看 62关注 0票数 0

我见过多个帖子推荐您的文章,并将请求用于指定标题内容类型的应用程序/json、添加或删除字符集或指定内容编码,但这并没有解决问题。

过去6-7年来,该网站一直运行良好,在.Net框架4.5.0中使用了jquery和knockoutjs。

代码语言:javascript
复制
        $.ajax({
            url: '/api/calendrierUsager/preferences',
            type: 'PUT',
            data: JSON.stringify(calendrier.configuration.viewModel.preferences()),
            contentType: "application/json; charset=utf-8",
            success: function(result) { ... }

奇怪的是,同一代码发布的一个服务器没有问题,而生产服务器返回HTTP错误415 -不受支持的媒体类型的任何put和post请求的api。简单的json文本有效负载,没有任何文件内容失败。

在Chrome developer控制台中,来自服务器的响应具有此有效负载以及http错误415。

{"Message":"The request contains an entity body but no Content-Type header. The inferred media type 'application/octet-stream' is not supported for this resource."}

这两台服务器都在使用netscaler进行负载平衡。相同的框架和窗口更新。

如果服务器具有相同的代码(除了来自web.config的配置值),服务器上的哪些配置会导致问题?

相同的代码在不同的服务器上工作;在内容编码头或内容类型请求标头中添加charset=utf8或charset=utf-8不会在这两个环境中发生任何更改(在一个有或没有的环境上工作,在另一个有或没有的环境上使用错误415 )。

EN

回答 1

Stack Overflow用户

发布于 2022-11-08 18:06:28

在项目(packages.config)中引入这些包似乎导致了我的问题:

代码语言:javascript
复制
<package id="Microsoft.IdentityModel.Abstractions" version="6.24.0" targetFramework="net45" />
<package id="Microsoft.IdentityModel.Logging" version="6.24.0" targetFramework="net45" />
<package id="Microsoft.IdentityModel.Tokens" version="6.24.0" targetFramework="net45" />

我能够删除它们(我只需要Base64UrlEncoder来处理一个端点中的一个base64编码参数),重新部署,问题就消失了。

我仍然不明白为什么它在本地和我们的dev服务器上没有问题。

此外,如果这有帮助的话,我从github问题中读到了https://github.com/umbraco/Umbraco-CMS/issues/3796<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net45" />会产生同样的错误,建议的操作是将评级降到5.2.6

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

https://stackoverflow.com/questions/74352962

复制
相关文章

相似问题

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