테스트 중에 테스트 이메일을 보내는 것과 같이 개발 환경에서 전자 메일을 다르게 보내려합니다. 이메일을 보내기 전에 webconfig 파일에서 응용 프로그램 값을 설정하거나 url을 확인할 수 있음을 알고 있습니다. 이 작업을 수행하는 데 가장 좋은 방법이 무엇인지 또는 더 잘 알지 못하는 다른 옵션이 있는지 알고 싶습니다. 이 주제에 대한 모든 정보는 크게 감사하겠습니다.. NET에서 생산 또는 개발 환경에서 알리는 가장 좋은 방법
답변
저는 Preprocessor Directives (in C#)을 사용합니다. VB에서는 Directives이라고합니다. 하나는이 메서드를 호출하고 런타임 중에 있습니다 어디서나 코드에서 다음
public static bool IsDebug()
{
#if DEBUG
return true;
#else
return false;
#endif
}
그것은 경우 코드가 Debug
(개발)에서 실행되고 있는지 알 나 있습니다 :
는이 같은 도우미 메서드를 그것은 Release
버전 (생산)입니다.
대신 코드를 변경이다, 당신은 왜 필드를 해결하기 위해 관계없이의 당신에게 메일 만에 개발 메일 서버를 설정하지?
코드를 작성하는 것보다 효과적입니다.
음, 단지 당신이 생산 무엇을 결정할 수 있습니다 무엇을 개발, 그래서 Web.config의에서 플래그를 확인하지만, 더 우아한 해결책은 이름을 Castle Windsor을 Spring.Net 알라 Dependency Injection (DI)과 같은 패턴, StructureMap을 포함하고, 것입니다 조금.
DI의 핵심 개념은 런타임시 인스턴스화 할 클래스에 대한 정보를 동적으로 제공하여 구현의 변형을 분리/분리하는 것입니다. 이 경우, 예를 들어, 모든 코드는 '메일'인터페이스 (prod 또는 dev 환경인지 여부를 알지 못함)를 처리하도록 작성되며 DI 프레임 워크를 구성하여 제품의 개발 버전이나 프로덕션 버전을 인스턴스화합니다. 메일 구현 클래스. 구성 매개 변수 값이 드러나지 않고 확산되고 있다는 점에서 조금 깔끔합니다.
물론 거기에는 학습 곡선이 있으므로 프로젝트의이 단계에서는 실용적이지는 않지만 확실히 염두에 두어야 할 것이 있습니다.
IIS의 web config inheritance을 사용하면 앱이 배포 된 해당 환경에서 글로벌 컨텍스트 설정을 '상속'할 수 있습니다. 당신의 .NET 응용 프로그램이 설치되어있는 곳의 상위 디렉토리에서
(예/inetpub/wwwroot.web.config
, 또는 루트 Web.config의 (
\Windows\Microsoft.NET\Framework\ver\web.config
)를, 특정 설정 환경을 추가 예 : PROD에서
<appSettings>
<add key="sendMailTo" value="" />
<add key="environmentName" value="PROD" />
</appSettings>
DEV에서
이
<appSettings>
<add key="sendMailTo" value="[email protected]" />
<add key="environmentName" value="DEV" />
</appSettings>
이 환경 컨텍스트 설정 배포되지 않습니다 때마다 당신은 당신의 응용 프로그램을 다시 배포합니다. 또한,이 y로 배포 다른 모든 응용 프로그램을 우리 서버는 이러한 설정을 상속받을 수도 있습니다.
사이트 전체에서 웹 구성 값을 확인하는 데 성능 비용이 있습니까? – user1572948
@ user1572948 AppSettings를 한 번 읽고 캐시하면 추가 성능 향상이 가능합니다. http://stackoverflow.com/questions/1304897/asp-net-web-config-appsettings-performance – StuartLC
정보를 주셔서 감사합니다. 그리고 캐시 된 그것은 내게 문제가되어서는 안된다. – user1572948
- 1. 기존 생산 환경에서 Sharepoint 개발 환경 만들기
- 2. Glassfish 3.1 : 개발 환경이나 생산 환경에서 실행 중이십니까?
- 3. .NET에서 스레드가 다른 스레드를 알리는 가장 좋은 방법은 무엇입니까?
- 4. 개발/생산 설정 방법
- 5. Xcode - 조건부 개발 또는 생산 모드
- 6. 생산 환경에서 output_buffering을 설정 또는 해제해야합니까?
- 7. .NET에서 Android 또는 iPhone으로의 개발
- 8. 내 생산 환경에서
- 9. .NET에서 XML을 조작하는 가장 좋은 방법
- 10. asp.net 생산/개발 환경
- 11. 생산 환경으로의 개발 도움말
- 12. Windows 콜백에서 Delphi 응용 프로그램에 알리는 가장 좋은 방법
- 13. 생산 및 개발 log4net 구성?
- 14. 기업 환경에서 지속적인 변화를위한 개발?
- 15. Oracle ODP.NET은 생산 환경에서 안정적입니까?
- 16. Php.ini 생산 대 개발
- 17. 개발/품질 보증/생산 환경
- 18. 레일에서 작업이 완료되었다는 것을 알리는 가장 좋은 방법
- 19. 웹 서비스가 고객에게 새로운 데이터를 알리는 가장 좋은 방법은 무엇입니까?
- 20. 리눅스 환경에서 가장 좋은 IDE는 무엇입니까?
- 21. 가상화가 프로덕션 환경에서 항상 적절한 것은 아니라는 것을 관리에 알리는 가장 좋은 방법은 무엇입니까?
- 22. svn 저장소에 동기화 (병합)하는 방법 개발 -> 생산
- 23. .Net에서 확장 메서드를 사용하는 가장 좋은 방법은 무엇입니까?
- 24. SVN을 사용하는 가장 좋은 방법
- 25. .NET에서 스파 스 매트릭스를 저장하는 가장 좋은 방법
- 26. appprodUrlGenerator 생산 환경에서 찾을 수 없습니다
- 27. .Net에서 이것을 구현하는 가장 좋은 방법은 무엇입니까?
- 28. . NET에서 SQLite와 대화하는 가장 좋은 방법은 무엇입니까?
- 29. 생산 및 개발 프로젝트 환경
- 30. 개발 데이터를 생산 데이터에 병합
감사합니다. 그렇다면 IIS에서 smtp를 설정할 수 있습니다. 전자 메일을 보내는 대신 폴더에 저장하도록 설정할 수도 있다고 생각합니다. – user1572948