Nancy: λ‚΄λΆ€ μ„œλ²„ 였λ₯˜ μ‹œ ν˜Όλ™λ˜λŠ” 였λ₯˜ λ©”μ‹œμ§€

에 λ§Œλ“  2016λ…„ 10μ›” 30일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: NancyFx/Nancy

μ•ˆλ…•ν•˜μ„Έμš”, 버그 λ¦¬ν¬νŠΈκ°€ μ•„λ‹Œ μš”μ²­μ΄ μžˆμŠ΅λ‹ˆλ‹€.
μ½”λ“œμ—μ„œ μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ 이 νŽ˜μ΄μ§€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

screen shot 2016-10-30 at 13 49 16

값을 μ„€μ •ν•˜λ €κ³  ν–ˆμ§€λ§Œ TraceConfiguration.DisplayErrroTraces λΌλŠ” 정적 μ†μ„±μ΄λ‚˜ environment#Tracing λΌλŠ” λ©”μ„œλ“œλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
이 κΈ°λŠ₯은 더 이상 Nancy 2.0μ—μ„œ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆκΉŒ?

λͺ‡ λΆ„ 후에 λ‹€μŒ μ½”λ“œκ°€ μž‘λ™ν•œλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

    public class Bootstrapper : Nancy.DefaultNancyBootstrapper 
    {
        public override void Configure(INancyEnvironment environment)
        {
            var config = new Nancy.TraceConfiguration(enabled: false, displayErrorTraces: true);
            environment.AddValue(config);
        }
    }

μœ„μ™€ 같은 예λ₯Ό λ³΄μ—¬λ“œλ¦¬λŠ” 것이 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œ μƒκ°ν•˜μ‹œλ‚˜μš”?

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ§žμŠ΅λ‹ˆλ‹€. 같은 λ¬Έμ œκ°€ μžˆλŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•œ using μ§€μ‹œλ¬Έ, 전체 ν΄λž˜μŠ€κ°€ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

using Nancy;
using Nancy.Bootstrapper;
using Nancy.TinyIoc;
using Nancy.Configuration;

public class CustomBootstrapper : DefaultNancyBootstrapper
{
        public override void Configure(INancyEnvironment environment)
        {
            environment.Tracing(enabled: false, displayErrorTraces: true);
        }
}

κ°μ‚¬ν•©λ‹ˆλ‹€!

λͺ¨λ“  5 λŒ“κΈ€

μ•ˆλ…•,

μ•Œλ €μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λŠ” 였λ₯˜ λ©”μ‹œμ§€κ°€ 맀우 κ°„λ‹¨ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 특히 λ¬Έμž₯은 무엇을 ν•΄μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄ 맀우 λͺ…μ‹œμ μž…λ‹ˆλ‹€.

  1. Boostrapper의 Configure λ©”μ„œλ“œ μž¬μ •μ˜
  2. 호좜 environment.Tracing(ν™œμ„±ν™”λ¨: false, displayErrorTraces: true)

λ”°λΌμ„œ 당뢄간은 λ³€κ²½ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 λ„ˆλ¬΄ ν˜Όλž€ μŠ€λŸ½λ‹€λŠ” 것을 μ•Œμ•˜κ³  λ¬Έμ„œμ—μ„œ 이것을 ν™œμ„±ν™”ν•˜λŠ” 방법을 찾지 λͺ»ν–ˆκ³  miyatin의 클래슀λ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒ 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

였λ₯˜ CS0234: 'Nancy' λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— 'INancyEnvironment' μœ ν˜• λ˜λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이름이 μ—†μŠ΅λ‹ˆλ‹€(μ–΄μ…ˆλΈ”λ¦¬ μ°Έμ‘°κ°€ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?)
였λ₯˜ CS0115: 'CustomBootstrapper.Configure(INancyEnvironment)': μž¬μ •μ˜ν•  μ μ ˆν•œ λ©”μ„œλ“œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

v2λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 였λ₯˜ νŽ˜μ΄μ§€μ˜ 지침을 λ”°λ₯΄μ„Έμš”. λΆ€νŠΈμŠ€νŠΈλž˜νΌ μž¬μ •μ˜μ—μ„œ ν™˜κ²½μ„ κ΅¬μ„±ν•˜κ³  μ‚¬μš©ν•©λ‹ˆλ‹€.좔적

λ§žμŠ΅λ‹ˆλ‹€. 같은 λ¬Έμ œκ°€ μžˆλŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•œ using μ§€μ‹œλ¬Έ, 전체 ν΄λž˜μŠ€κ°€ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

using Nancy;
using Nancy.Bootstrapper;
using Nancy.TinyIoc;
using Nancy.Configuration;

public class CustomBootstrapper : DefaultNancyBootstrapper
{
        public override void Configure(INancyEnvironment environment)
        {
            environment.Tracing(enabled: false, displayErrorTraces: true);
        }
}

κ°μ‚¬ν•©λ‹ˆλ‹€!

ꡬ성 변경이 μ‹€μ œλ‘œ μ œκ³΅ν•˜λŠ” λ‘œκΉ… μˆ˜μ€€μ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ? :)

    public override void Configure(INancyEnvironment environment)
    {
       environment.Tracing(enabled: false, displayErrorTraces: true);
    }

μ–΄μ œ λ‚˜λŠ” Nancy Bind<>κ°€ 잘λͺ»λœ DateTime ν•„λ“œ κ°’ 0002-01-01 00:00:00 +0000; 으둜 인해 ModelBinding.ModelBindingException 둜 λ‚˜μ—κ²Œ μΆ©λŒν•˜λŠ” λ¬Έμ œμ— λΆ€λ”ͺμ³€κ³  이 ꡬ성이 μ‹€μ œλ‘œ μ•Œλ €μ€„ 것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. name 에 μ˜ν•΄ λ¬Έμ œκ°€ λ˜λŠ” 속성이 무엇인지 λ‚˜μ—κ²Œ μ•Œλ € μ£Όμ—ˆμ§€λ§Œ 그렇지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

쩝. 버그λ₯Ό μ°Ύμ•˜μ§€λ§Œ λ¬Έμ œκ°€ λ˜λŠ” ν•­λͺ©μ„ μ°ΎκΈ° μœ„ν•΄ λ‚ μ§œ ν•„λ“œμ— μ—¬λŸ¬ get/set λ©”μ„œλ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. :)

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰