c# – 将Excel连接到.Net Core v1.1 OData v4的异常添加至少一种媒体类型?

c# – 将Excel连接到.Net Core v1.1 OData v4的异常添加至少一种媒体类型?,第1张

概述使用.Net Core v1.1创建OData服务,它可以很好地从浏览器连接,但从Excel 2016连接时失败,作为基本的OData Feed.例外是 ‘InvalidOperationException’ No media types found in ‘Microsoft.AspNetCore.OData.Formatter.ODataOutputFormatter.SupportedMed 使用.Net Core v1.1创建OData服务,它可以很好地从浏览器连接,但从Excel 2016连接时失败,作为基本的OData Feed.例外是

‘InvalIDOperationException’
No media types found in ‘Microsoft.AspNetCore.OData.Formatter.ODataOutputFormatter.SupportedMediaTypes’.
Add at least one media type to the List of supported media types.

Excel和浏览器都使用Method =’GET’连接到’http://localhost:52315/odata‘

来自浏览器的headerAccept是:

"text/HTML,application/xhtml+xml,image/jxr,*/*"

来自excel的header接受:(注意:为了便于阅读,我在’;’之后添加了新行)

"application/Json;odata.Metadata=minimal;q=1.0,application/Json;odata=minimalMetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7"

有关如何添加媒体类型以及应添加哪些媒体类型的任何见解都表示赞赏.似乎无法找到样品或以前的问题处理此事.

解决方法 这显然是一个已知问题(参见 https://github.com/OData/WebApi/issues/597).它似乎不太可能在vNext分支中解决,但幸运的是,我找到了一个解决方法.

在Startup.cs中,在注册Odata之后,添加以下代码段:

public voID ConfigureServices(IServiceCollection services){    services.AddMvc();    services.AddOData();    services.AddMvcCore(options =>    {        // loop on each OData formatter to find the one without a supported media type        foreach (var outputFormatter in options.OutputFormatters.OfType<ODataOutputFormatter>().Where(_ => _.SupportedMediaTypes.Count == 0))        {            // to comply with the media type specifications,I'm using the prs prefix,for personal usage            outputFormatter.SupportedMediaTypes.Add(new MediaTypeheaderValue("application/prs.dummy-odata"));        }    });}

这将找到所有未声明支持的媒体类型的输出格式化程序,并添加虚拟媒体类型.

参考文献:

> vNext code that adds an improper formatter
> same code in the master branch

总结

以上是内存溢出为你收集整理的c# – 将Excel连接到.Net Core v1.1 OData v4的异常添加至少一种媒体类型?全部内容,希望文章能够帮你解决c# – 将Excel连接到.Net Core v1.1 OData v4的异常添加至少一种媒体类型?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1239749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存