小编mea*_*axe的帖子

有没有办法处理asp.net core odata错误

有没有办法处理 asp.net core odata 错误?

我有一个DimDateAvailable具有一个属性的模型类,主键为int DateId,我拨打了类似/data/DimDateAvailable?$select=test.

其他调用按预期工作并返回我所追求的 - 这是一个故意生成错误的调用,它失败是因为模型上没有名为 test 的属性。响应按预期返回,如下所示:{"error":{"code":"","message":"The query specified in the URI is not valid. Could not find a property named 'test' on type 'DimDateAvailable'...后跟堆栈跟踪。

这种反应是正常,当env.IsDevelopment()true,但我不希望暴露堆栈跟踪时,没有发展。

我已经看过在gettry-catch中将代码包装在控制器的方法中,但我认为有一个操作过滤器在结果上运行,因此它永远不会被调用。另一方面,我看不到在哪里注入任何中间件和/或添加任何过滤器来捕获错误。我怀疑可能有一种方法可以覆盖输出格式化程序来实现我想要的,但我看不到如何。

这是我目前所拥有的:

在 Startup.cs 中:

public void ConfigureServices(IServiceCollection services)
{
  services.AddScoped<TelemetryDbContext>();
  services.AddOData();
  services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
  if (env.IsDevelopment())
  {
    app.UseDeveloperExceptionPage();
  }

  app.UseMvc(routeBuilder =>
  {
    routeBuilder.MapODataServiceRoute("odata", "data", GetEdmModel());
    routeBuilder.Select().Expand().Filter().OrderBy().MaxTop(null).Count();

    // insert …
Run Code Online (Sandbox Code Playgroud)

odata asp.net-core

8
推荐指数
1
解决办法
4271
查看次数

部署到服务器时在/mini-profiler-resources/includes.js上出现404错误

我正在使用MiniProfiler用于asp.net web api站点,该站点的帮助页面具有mvc方面.

我试图描述其中一个api方法,这在我的本地机器上是成功的,但是当我部署到我的测试服务器(win2008r2/IIS 7.5)时,我能够浏览到/mini-profiler-resources/results,但页面是空白的,因为我得到了404上includes.js

我一直在审查这里的答案,其中讨论了添加条目<system.webServer><handlers>和/或添加<system.webServer><modules runAllManagedModulesForAllRequests="true"/>,在我的案例中没有一个是成功的.

这是我的global.asax中的相关代码.我不确定是否MiniProfilerHandler.RegisterRoutes()有必要:

protected void Application_Start()
{
  AreaRegistration.RegisterAllAreas();

  AutofacConfig.Register(GlobalConfiguration.Configuration);
  WebApiConfig.Register(GlobalConfiguration.Configuration);
  FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  RouteConfig.RegisterRoutes(RouteTable.Routes);
  BundleConfig.RegisterBundles(BundleTable.Bundles);

  FluentValidationConfig.RegisterForWebApi(GlobalConfiguration.Configuration);

  MiniProfilerHandler.RegisterRoutes();
  MiniProfilerEF6.Initialize();
  Database.SetInitializer<OasisIntegrationEntities>(null);

  // UseMiniProfilerUi(object) returns true.
  MiniProfiler.Settings.Results_Authorize = UseMiniProfilerUi; 
  MiniProfiler.Settings.Results_List_Authorize = UseMiniProfilerUi;
}
Run Code Online (Sandbox Code Playgroud)

miniprofiler是不是打算在服务器上运行,还是我错过了什么?

asp.net-mvc iis-7.5 mvc-mini-profiler

4
推荐指数
1
解决办法
1645
查看次数

为什么这个使用 nameof() 的自引用代码有效?

好奇这个自引用代码如何有效或能够编译?

public class TestClass
{
  public string TestProperty = nameof(TestProperty);
}
Run Code Online (Sandbox Code Playgroud)

c#

1
推荐指数
1
解决办法
69
查看次数