Thanks If you need any thing else I will add it to here. Where can I find
this tool?
Any way this is my Swagger config file:
using System.Web.Http;
using WebActivatorEx;
using ThirdPartyWebAPI;
using Swashbuckle.Application;
using Swashbuckle.OData;
using System;
using System.IO;
using System.Reflection;
using ThirdPartyWebAPI.App_Start;
using Swashbuckle.Swagger;
using System.Web.Http.Description;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http.Controllers;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace ThirdPartyWebAPI
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
// By default, the service root url is inferred
from the request used to access the docs.
// However, there may be situations (e.g. proxy and
load-balanced environments) where this does not
// resolve correctly. You can workaround this by
providing your own code to determine the root URL.
//
//c.RootUrl(req => GetRootUrlFromAppConfig());
// If schemes are not explicitly provided in a
Swagger 2.0 document, then the scheme used to access
// the docs is taken as the default. If your API
supports multiple schemes and you want to be explicit
// about them, you can use the "Schemes" option as
shown below.
//
//c.Schemes(new[] { "http", "https" });
// Use "SingleApiVersion" to describe a single
version API. Swagger 2.0 includes an "Info" object to
// hold additional metadata for an API. Version and
title are required but you can also provide
// additional fields by chaining methods off
SingleApiVersion.
//
c.SingleApiVersion("v1", "ThirdPartyWebAPI");
c.CustomProvider(defaultProvider => new
ODataSwaggerProvider(defaultProvider, c).Configure(odataConfig =>
{
odataConfig.IncludeNavigationProperties();
}));
// If your API has multiple versions, use
"MultipleApiVersions" instead of "SingleApiVersion".
// In this case, you must provide a lambda that
tells Swashbuckle which actions should be
// included in the docs for a given API version.
Like "SingleApiVersion", each call to "Version"
// returns an "Info" builder so you can provide
additional metadata per API version.
//
//c.MultipleApiVersions(
// (apiDesc, targetApiVersion) =>
ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
// (vc) =>
// {
// vc.Version("v2", "Swashbuckle Dummy API
V2");
// vc.Version("v1", "Swashbuckle Dummy API
V1");
// });
// You can use "BasicAuth", "ApiKey" or "OAuth2"
options to describe security schemes for the API.
// See
https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for
more details.
// NOTE: These only define the schemes and need to
be coupled with a corresponding "security" property
// at the document or operation level to indicate
which schemes are required for an operation. To do this,
// you'll need to implement a custom
IDocumentFilter and/or IOperationFilter to set these properties
// according to your specific authorization
implementation
//
//c.BasicAuth("basic")
// .Description("Basic HTTP Authentication");
//
//c.ApiKey("apiKey")
// .Description("API Key Authentication")
// .Name("apiKey")
// .In("header");
//
//c.OAuth2("oauth2")
// .Description("OAuth2 Implicit Grant")
// .Flow("implicit")
//
.AuthorizationUrl("http://petstore.swagger.wordnik.com/api/oauth/dialog")
// //.TokenUrl("https://tempuri.org/token")
// .Scopes(scopes =>
// {
// scopes.Add("read", "Read access to
protected resources");
// scopes.Add("write", "Write access to
protected resources");
// });
// Set this flag to omit descriptions for any
actions decorated with the Obsolete attribute
//c.IgnoreObsoleteActions();
// Each operation be assigned one or more tags
which are then used by consumers for various reasons.
// For example, the swagger-ui groups operations
according to the first tag of each operation.
// By default, this will be controller name but you
can use the "GroupActionsBy" option to
// override with any value.
//
//c.GroupActionsBy(apiDesc =>
apiDesc.HttpMethod.ToString());
// You can also specify a custom sort order for
groups (as defined by "GroupActionsBy") to dictate
// the order in which operations are listed. For
example, if the default grouping is in place
// (controller name) and you specify a descending
alphabetic sort order, then actions from a
// ProductsController will be listed before those
from a CustomersController. This is typically
// used to customize the order of groupings in the
swagger-ui.
//
//c.OrderActionGroupsBy(new
DescendingAlphabeticComparer());
// If you annotate Controllers and API Types with
// Xml comments
(http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can
incorporate
// those comments into the generated docs and UI.
You can enable this by providing the path to one or
// more Xml comment files.
//
var baseDirectory =
AppDomain.CurrentDomain.BaseDirectory;
var commentsFileName =
Assembly.GetExecutingAssembly().GetName().Name + ".XML";
var commentsFile = Path.Combine(baseDirectory,
"bin", commentsFileName);
c.IncludeXmlComments(commentsFile);
// Swashbuckle makes a best attempt at generating
Swagger compliant JSON schemas for the various types
// exposed in your API. However, there may be
occasions when more control of the output is needed.
// This is supported through the "MapType" and
"SchemaFilter" options:
//
// Use the "MapType" option to override the Schema
generation for a specific type.
// It should be noted that the resulting Schema
will be placed "inline" for any applicable Operations.
// While Swagger 2.0 supports inline definitions
for "all" Schema types, the swagger-ui tool does not.
// It expects "complex" Schemas to be defined
separately and referenced. For this reason, you should only
// use the "MapType" option when the resulting
Schema is a primitive or array type. If you need to alter a
// complex Schema, use a Schema filter.
//
//c.MapType<ProductType>(() => new Schema { type =
"integer", format = "int32" });
// If you want to post-modify "complex" Schemas
once they've been generated, across the board or for a
// specific type, you can wire up one or more
Schema filters.
//
//c.SchemaFilter<ApplySchemaVendorExtensions>();
// In a Swagger 2.0 document, complex types are
typically declared globally and referenced by unique
// Schema Id. By default, Swashbuckle does NOT use
the full type name in Schema Ids. In most cases, this
// works well because it prevents the
"implementation detail" of type namespaces from leaking into your
// Swagger docs and UI. However, if you have
multiple types in your API with the same class name, you'll
// need to opt out of this behavior to avoid Schema
Id conflicts.
//
//c.UseFullTypeNameInSchemaIds();
// Alternatively, you can provide your own custom
strategy for inferring SchemaId's for
// describing "complex" types in your API.
//
//c.SchemaId(t => t.FullName.Contains('`') ?
t.FullName.Substring(0, t.FullName.IndexOf('`')) : t.FullName);
// Set this flag to omit schema property
descriptions for any type properties decorated with the
// Obsolete attribute
c.IgnoreObsoleteProperties();
//c.OperationFilter<AddDefaultValues>();
// In accordance with the built in JsonSerializer,
Swashbuckle will, by default, describe enums as integers.
// You can change the serializer behavior by
configuring the StringToEnumConverter globally or for a given
// enum type. Swashbuckle will honor this change
out-of-the-box. However, if you use a different
// approach to serialize enums as strings, you can
also force Swashbuckle to describe them as strings.
//
c.DescribeAllEnumsAsStrings();
// Similar to Schema filters, Swashbuckle also
supports Operation and Document filters:
//
// Post-modify Operation descriptions once they've
been generated by wiring up one or more
// Operation filters.
//
//c.OperationFilter<AddDefaultResponse>();
//
// If you've defined an OAuth2 flow as described
above, you could use a custom filter
// to inspect some attribute on each action and
infer which (if any) OAuth2 scopes are required
// to execute the operation
//
//c.OperationFilter<AssignOAuth2SecurityRequirements>();
// Post-modify the entire Swagger document by
wiring up one or more Document filters.
// This gives full control to modify the final
SwaggerDocument. You should have a good understanding of
// the Swagger 2.0 spec. -
https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md
// before using this option.
//
// c.DocumentFilter<ApplyResourceDocumentation>();
c.DescribeAllEnumsAsStrings();
//c.DocumentFilter<ApplyDocumentVendorExtensions>();
// In contrast to WebApi, Swagger 2.0 does not
include the query string component when mapping a URL
// to an action. As a result, Swashbuckle will
raise an exception if it encounters multiple actions
// with the same path (sans query string) and HTTP
method. You can workaround this by providing a
// custom strategy to pick a winner or merge the
descriptions for the purposes of the Swagger docs
//
//c.ResolveConflictingActions(apiDescriptions =>
apiDescriptions.First());
// Wrap the default SwaggerGenerator with
additional behavior (e.g. caching) or provide an
// alternative implementation for ISwaggerProvider
with the CustomProvider option.
//
//c.CustomProvider((defaultProvider) => new
CachingSwaggerProvider(defaultProvider));
})
.EnableSwaggerUi(c =>
{
// Use the "InjectStylesheet" option to enrich the
UI with one or more additional CSS stylesheets.
// The file must be included in your project as an
"Embedded Resource", and then the resource's
// "Logical Name" is passed to the method as shown
below.
//
//c.InjectStylesheet(containingAssembly,
"Swashbuckle.Dummy.SwaggerExtensions.testStyles1.css");
// Use the "InjectJavaScript" option to invoke one
or more custom JavaScripts after the swagger-ui
// has loaded. The file must be included in your
project as an "Embedded Resource", and then the resource's
// "Logical Name" is passed to the method as shown
above.
//
//c.InjectJavaScript(thisAssembly,
"Swashbuckle.Dummy.SwaggerExtensions.testScript1.js");
// The swagger-ui renders boolean data types as a
dropdown. By default, it provides "true" and "false"
// strings as the possible choices. You can use
this option to change these to something else,
// for example 0 and 1.
//
//c.BooleanValues(new[] { "0", "1" });
// By default, swagger-ui will validate specs
against swagger.io's online validator and display the result
// in a badge at the bottom of the page. Use these
options to set a different validator URL or to disable the
// feature entirely.
//c.SetValidatorUrl("http://localhost/validator");
//c.DisableValidator();
// Use this option to control how the Operation
listing is displayed.
// It can be set to "None" (default), "List" (shows
operations for each resource),
// or "Full" (fully expanded: shows operations and
their details).
//
//c.DocExpansion(DocExpansion.List);
// Use the CustomAsset option to provide your own
version of assets used in the swagger-ui.
// It's typically used to instruct Swashbuckle to
return your version instead of the default
// when a request is made for "index.html". As with
all custom content, the file must be included
// in your project as an "Embedded Resource", and
then the resource's "Logical Name" is passed to
// the method as shown below.
//
//c.CustomAsset("index", containingAssembly,
"YourWebApiProject.SwaggerExtensions.index.html");
// If your API has multiple versions and you've
applied the MultipleApiVersions setting
// as described above, you can also enable a select
box in the swagger-ui, that displays
// a discovery URL for each version. This provides
a convenient way for users to browse documentation
// for different API versions.
//
//c.EnableDiscoveryUrlSelector();
// If your API supports the OAuth2 Implicit flow,
and you've described it correctly, according to
// the Swagger 2.0 specification, you can enable UI
support as shown below.
//
//c.EnableOAuth2Support("test-client-id",
"test-realm", "Swagger UI");
});
}
//public void Apply(Operation operation, SchemaRegistry
schemaRegistry, ApiDescription apiDescription)
//{
// if (operation.parameters == null)
// return;
// IDictionary<string, object> parameterValuePairs =
// GetParameterValuePairs(apiDescription.ActionDescriptor);
// foreach (var param in operation.parameters)
// {
// if (param.schema != null && param.schema.@ref != null)
// {
// string schemaName =
[email protected]('/').LastOrDefault();
// if
(schemaRegistry.Definitions.ContainsKey(schemaName))
// foreach (var props in
schemaRegistry.Definitions[schemaName].properties)
// {
// if
(parameterValuePairs.ContainsKey(props.Key))
// props.Value.@default =
parameterValuePairs[props.Key];
// }
// }
// var parameterValuePair =
parameterValuePairs.FirstOrDefault(p => p.Key.IndexOf(param.name,
StringComparison.InvariantCultureIgnoreCase) >= 0);
// param.@default = parameterValuePair.Value;
// }
//}
//private IDictionary<string, object>
GetParameterValuePairs(HttpActionDescriptor actionDescriptor)
//{
// IDictionary<string, object> parameterValuePairs = new
Dictionary<string, object>();
// foreach (SwaggerDefaultValue defaultValue in
actionDescriptor.GetCustomAttributes<SwaggerDefaultValue>())
// {
// parameterValuePairs.Add(defaultValue.Name,
defaultValue.Value);
// }
// foreach (var parameter in actionDescriptor.GetParameters())
// {
// if (!parameter.ParameterType.IsPrimitive)
// {
// foreach (PropertyInfo property in
parameter.ParameterType.GetProperties())
// {
// var defaultValue = GetDefaultValue(property);
// if (defaultValue != null)
// {
// parameterValuePairs.Add(property.Name,
defaultValue);
// }
// }
// }
// }
// return parameterValuePairs;
//}
}
}
The web.config is the same
My nugets:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="angularjs" version="1.2.1" targetFramework="net45" />
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="bootstrap" version="3.0.2" targetFramework="net45" />
<package id="Breeze.Client" version="1.4.6" targetFramework="net45" />
<package id="datajs" version="1.1.1" targetFramework="net45" />
<package id="Flurl" version="0.1.0" targetFramework="net452" />
<package id="jQuery" version="1.9.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Cors" version="5.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.OData" version="5.9.0"
targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR" version="2.2.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.Core" version="2.2.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.JS" version="2.2.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.1"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3"
targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3"
targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.SelfHost" version="5.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3"
targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages" version="3.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.0.0"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.0.0"
targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.3" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.10"
targetFramework="net45" />
<package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45"
/>
<package id="Microsoft.Data.OData" version="5.6.0"
targetFramework="net45" />
<package id="Microsoft.IdentityModel.Protocol.Extensions" version="1.0.0"
targetFramework="net451" />
<package id="Microsoft.Net.Http" version="2.2.15" targetFramework="net45"
/>
<package id="Microsoft.OData.Core" version="6.15.0"
targetFramework="net451" />
<package id="Microsoft.OData.Edm" version="6.15.0"
targetFramework="net451" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Cors" version="3.0.0" targetFramework="net45"
/>
<package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0"
targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Owin.Security.ActiveDirectory" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Owin.Security.Jwt" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Owin.Security.WsFederation" version="3.0.1"
targetFramework="net451" />
<package id="Microsoft.Spatial" version="6.15.0" targetFramework="net451"
/>
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0"
targetFramework="net45" />
<package id="Microsoft.WindowsAzure.ConfigurationManager"
version="2.0.1.0" targetFramework="net451" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="PerfIt" version="0.1.5" targetFramework="net45" />
<package id="Q" version="0.9.7" targetFramework="net45" />
<package id="RequireJS" version="2.1.9" targetFramework="net45" />
<package id="Spin.js" version="1.3" targetFramework="net45" />
<package id="Swashbuckle" version="5.3.2" targetFramework="net452" />
<package id="Swashbuckle.Core" version="5.3.2" targetFramework="net452" />
<package id="Swashbuckle.OData" version="2.18.3" targetFramework="net452"
/>
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.0"
targetFramework="net451" />
<package id="System.Spatial" version="5.6.0" targetFramework="net45" />
<package id="toastr" version="2.0.1" targetFramework="net45" />
<package id="Unity" version="3.0.1304.1" targetFramework="net45" />
<package id="Unity.WebAPI" version="0.10" targetFramework="net45" />
<package id="WebActivatorEx" version="2.1.0" targetFramework="net452" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
<package id="WindowsAzure.Storage" version="2.0.6.0"
targetFramework="net451" />
</packages>
and the controller
using System.Linq;
using log4net;
using Stabilis.Situator.OpServerTypes;
using ThirdPartyWebAPI.common.Types;
using SituatorLinq;
using System.Web.OData;
using System.Web.Http;
namespace ThirdPartyWebAPI.Controllers
{
public class KeywordIncidentTypesController : ODataController
{
private IOpClientWrapper _opClientWrapper = null;
private ILog _log;
private Context _LINQ;
public KeywordIncidentTypesController(Context context,
IOpClientWrapper opClientWrapper, ILog log)
{
_opClientWrapper = opClientWrapper;
_log = log;
_LINQ = context;
}
[EnableQuery]
public IQueryable<KeywordIncidentTypes> Get()
{
return _LINQ.KeywordIncidentTypesQuery;
}
[EnableQuery]
public SingleResult<KeywordIncidentTypes> Get(string key)
{
int incidentTypeId;
string keyword;
KeywordIncidentTypes.ResolveUniqueUnifiedKey(key, out
incidentTypeId, out keyword);
return
SingleResult.Create(_LINQ.KeywordIncidentTypesQuery.Where(p =>
p.IncidentTypeID == incidentTypeId &&
p.Keyword == keyword));
}
public IHttpActionResult Post(KeywordIncidentTypes keyword)
{
_opClientWrapper.IncidentProxy.AddKeywordIncidentType(keyword);
return Ok(keyword);
}
}
}
Thanks
On Thursday, August 4, 2016 at 2:19:14 AM UTC+3, Ron wrote:
>
> You don’t really provide enough details here – but based on the exception
> it looks like it’s a Swashbuckle integration.
>
> If that’s indeed the case, you should open a ticket directly on
> Swashbuckles repository as it’s a third party tool.
>
>
>
>
>
> *From: *<[email protected] <javascript:>> on behalf of
> Michal Carmeli <[email protected] <javascript:>>
> *Reply-To: *"[email protected] <javascript:>" <
> [email protected] <javascript:>>
> *Date: *Sunday, 31 July 2016 at 22:56
> *To: *Swagger <[email protected] <javascript:>>
> *Subject: *I try to add Odata Controllers (I Succeed to add API
> controllers). But I always get this error.
>
>
>
> 500 : {"$id":"1","Message":"An error has
> occurred.","ExceptionMessage":"Precondition failed: currentProperty !=
> null","ExceptionType":"System.Diagnostics.Contracts.__ContractsRuntime+ContractException","StackTrace":"
>
> at
> System.Diagnostics.Contracts.__ContractsRuntime.TriggerFailure(ContractFailureKind
>
> kind, String msg, String userMessage, String conditionTxt, Exception
> inner)\r\n at
> System.Diagnostics.Contracts.__ContractsRuntime.ReportFailure(ContractFailureKind
>
> kind, String msg, String conditionTxt, Exception inner)\r\n at
> System.Diagnostics.Contracts.__ContractsRuntime.Requires(Boolean condition,
> String msg, String conditionTxt)\r\n at
> Swashbuckle.OData.SchemaRegistryExtensions.GetEdmPropertyName(MemberInfo
> currentProperty, IEdmStructuredType edmType)\r\n at
> Swashbuckle.OData.SchemaRegistryExtensions.ApplyEdmModelPropertyNamesToSchema(SchemaRegistry
>
> registry, IEdmModel edmModel, Type type)\r\n at
> Swashbuckle.OData.SchemaRegistryExtensions.GetOrRegisterResponseType(SchemaRegistry
>
> registry, IEdmModel edmModel, Type type)\r\n at
> Swashbuckle.OData.ODataSwaggerProvider.CreateOperation(ApiDescription
> apiDescription, SchemaRegistry schemaRegistry)\r\n at
> Swashbuckle.OData.ODataSwaggerProvider.CreatePathItem(IEnumerable`1
> apiDescriptions, SchemaRegistry schemaRegistry)\r\n at
> Swashbuckle.OData.ODataSwaggerProvider.<>c__DisplayClass4_0.<GetSwagger>b__3(IGrouping`2
>
> group)\r\n at
> System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1
> source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1
> comparer)\r\n at
> System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1
> source, Func`2 keySelector, Func`2 elementSelector)\r\n at
> Swashbuckle.OData.ODataSwaggerProvider.GetSwagger(String rootUrl, String
> apiVersion)\r\n at
> Swashbuckle.Application.SwaggerDocsHandler.SendAsync(HttpRequestMessage
> request, CancellationToken cancellationToken)\r\n at
> System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request,
> CancellationToken cancellationToken)\r\n at
> System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage
> request, CancellationToken cancellationToken)\r\n at
> System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request,
> CancellationToken cancellationToken)\r\n at
> ThirdPartyWebAPI.ApiKeyVerificationChannel.SendAsync(HttpRequestMessage
> request, CancellationToken cancellationToken) in
> c:\\SM\\NG\\Trunk\\Odata4\\SM_NG_VH_DEV\\WebAPIServerV2\\ThirdPartyWebAPI\\Common\\ApiKeyVerificationChannel.cs:line
>
> 55\r\n at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage
> request, CancellationToken cancellationToken)\r\n at
> ThirdPartyWebAPI.Common.CorsHandler.SendAsync(HttpRequestMessage request,
> CancellationToken cancellationToken) in
> c:\\SM\\NG\\Trunk\\Odata4\\SM_NG_VH_DEV\\WebAPIServerV2\\ThirdPartyWebAPI\\Common\\CorsHandler.cs:line
>
> 70\r\n at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage
> request, CancellationToken cancellationToken)\r\n at
> System.Web.Http.Tracing.Tracers.RequestMessageHandlerTracer.<>n__FabricatedMethod6(HttpRequestMessage
>
> , CancellationToken )\r\n at
> System.Web.Http.Tracing.Tracers.RequestMessageHandlerTracer.<>c__DisplayClass4.<SendAsync>b__1()\r\n
>
> at
> System.Web.Http.Tracing.ITraceWriterExtensions.TraceBeginEndAsync[TResult](ITraceWriter
>
> traceWriter, HttpRequestMessage request, String category, TraceLevel level,
> String operatorName, String operationName, Action`1 beginTrace, Func`1
> execute, Action`2 endTrace, Action`1 errorTrace)\r\n at
> System.Web.Http.Tracing.Tracers.RequestMessageHandlerTracer.SendAsync(HttpRequestMessage
>
> request, CancellationToken cancellationToken)\r\n at
> System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request,
> CancellationToken cancellationToken)\r\n at
> System.Web.Http.HttpServer.<>n__FabricatedMethod9(HttpRequestMessage ,
> CancellationToken )\r\n at
> System.Web.Http.HttpServer.<SendAsync>d__0.MoveNext()"}
> http://localhost:59418/swagger/docs/v1
>
> --
> You received this message because you are subscribed to the Google Groups
> "Swagger" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.