gpt4 book ai didi

c# - ASP.Net Web Api - ApiExplorer 不包含任何 ApiDescriptions

转载 作者:可可西里 更新时间:2023-11-01 08:28:42 26 4
gpt4 key购买 nike

我正在尝试在我的 Web 服务的 Controller 中实现一个 Options 方法,该方法将返回一条消息,其中包含与 Controller 关联的 URI 端点的有效 HTTP 方法。我的 Options 方法看起来像这样:

public HttpResponseMessage Options()
{
var resp = new HttpResponseMessage();
resp.Content = new StringContent("");

var apiExplorer = GlobalConfiguration.Configuration.Services
.GetApiExplorer();

foreach (ApiDescription api in apiExplorer.ApiDescriptions)
{
resp.Content.Headers.Add("Allow", api.HttpMethod.Method);
}

return resp;
}

我已经在一个全新的 Web Api 项目(暗示:未更改的路由)中尝试了上述方法,该项目位于具有 Get、Post 和 Delete 方法的 Controller 内。正如预期的那样,返回带有“允许:GET、POST、DELETE”的响应。但是,我遇到了麻烦,无法将其添加到我正在处理的更大项目中。在较大的项目中,ApiExplorer 中的 ApiDescriptions 列表不包含任何元素。为什么是这样?我怀疑这是由于已实现的自定义路由所致,尽管这种怀疑的唯一依据是以下链接:

http://forums.asp.net/t/1821651.aspx/1

还有其他人遇到过这个空的 ApiDescription 列表吗?如果是这样,您找到补救措施了吗?

注意:我使用的是 MCV 4 RC

最佳答案

如果您使用 Glimpse,您可能必须禁用它的路由检查器:

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<logging level="Off" />
<tabs>
<ignoredTypes>
<add type="Glimpse.AspNet.Tab.Routes, Glimpse.AspNet" />
</ignoredTypes>
</tabs>
<inspectors>
<ignoredTypes>
<add type="Glimpse.AspNet.Inspector.RoutesInspector, Glimpse.AspNet" />
</ignoredTypes>
</inspectors>
</glimpse>

Glimpse 创建了破坏 HostedHttpRouteCollection 中枚举的 RouteProxies: https://github.com/mono/aspnetwebstack/blob/master/src/System.Web.Http.WebHost/Routing/HostedHttpRouteCollection.cs

我知道链接是针对单声道的,但对于标准 .Net 也是如此。

关于c# - ASP.Net Web Api - ApiExplorer 不包含任何 ApiDescriptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com