[asp.net] ASP.NET의 숨겨진 기능

이 질문은 역사적 의미가 있기 때문에 존재하지만이 사이트에 대해서는 좋은 주제로 간주 되지 않으므로 여기에서 비슷한 질문을 할 수 있다는 증거로 사용하지 마십시오.

자세한 정보 : https://stackoverflow.com/faq


프린지 시나리오에 유용한 기능은 항상 있지만 그 이유 때문에 대부분의 사람들은이를 알지 못합니다. 나는 일반적으로 교과서에서 가르치지 않는 기능을 요구하고 있습니다.

당신이 아는 것은 무엇입니까?



답변

테스트하는 동안 SMTP 서버 대신 컴퓨터의 폴더로 이메일을 보낼 수 있습니다. 이것을 web.config에 넣으십시오.

<system.net>
    <mailSettings>
        <smtp deliveryMethod="SpecifiedPickupDirectory">
            <specifiedPickupDirectory pickupDirectoryLocation="c:\Temp\" />
        </smtp>
    </mailSettings>
</system.net>


답변

app_offline.htm 이라는 파일을
웹 응용 프로그램 디렉터리의 루트에 배치하면 ASP.NET 2.0+는 응용 프로그램을 종료하고 해당 응용 프로그램에 대한 새로운 들어오는 요청의 처리를 중지하고 app_offline.htm의 내용 만 표시합니다. 모든 새로운 요청에 대한 파일 .

변경 사항을 프로덕션 서버에 다시 배포 (또는 롤백)하는 동안 “일시적으로 사용할 수 없음”알림을 표시하는 가장 빠르고 쉬운 방법입니다.

또한 marxidad가 지적했듯이 IE6이 올바르게 렌더링 할 수 있도록 파일 내에 최소한 512 바이트의 내용이 있는지 확인하십시오.


답변

throw new HttpException(404, "Article not found");

이것은 customErrors 페이지를 반환하는 ASP.NET에 의해 포착됩니다. 최근 .NET Tip of the Day Post 에서 이것에 대해 배웠습니다.


답변

여기 가장 좋은 것이 있습니다. 빠른 컴파일을 위해 web.config에 추가하십시오. 이것은 이 QFE 를 통해 3.5SP1 이후 입니다.

<compilation optimizeCompilations="true">

빠른 요약 : 일부 시나리오에서 컴파일 속도를 크게 향상시킬 수있는 새로운 optimizeCompilations 스위치를 ASP.NET에 도입했습니다. 잡기가 있기 때문에 자세한 내용을 읽으십시오. 이 스위치는 현재 3.5SP1에 대한 QFE로 제공되며 VS 2010에 포함됩니다.

ASP.NET 컴파일 시스템은 ‘최상위’파일이 변경 될 때마다 수행했던 이전 작업을 모두 지우는 매우 보수적 인 접근 방식을 취합니다. ‘최상위 레벨’파일에는 bin. App_Code 및 global.asax의 모든 항목이 포함됩니다. 작은 앱에서는 제대로 작동하지만 매우 큰 앱에서는 거의 사용할 수 없습니다. 예를 들어 고객이 ‘빈’어셈블리를 변경 한 후 페이지를 새로 고치는 데 10 분이 걸리는 경우가있었습니다.

고통을 덜기 위해 재 컴파일에 훨씬 덜 보수적 인 접근 방식을 취하는 ‘최적화 된’컴파일 모드를 추가했습니다.

여기를 통해 :


답변

  • HttpContext.Current 는 페이지의 속성에 액세스 할 수없는 경우에도 (예 : 느슨하게 연결된 도우미 클래스에서) 현재 컨텍스트의 요청 / 응답 등에 액세스 할 수 있도록합니다.

  • Response.Redirect ( url , false )를 호출하여 사용자를 다른 페이지로 리디렉션 한 후 동일한 페이지에서 코드를 계속 실행할 수 있습니다.

  • 컴파일 된 페이지 (또는 IHttpHandler ) 만 있으면 .ASPX 파일이 필요하지 않습니다 . web.config 파일 의 요소 에서 클래스를 가리 키도록 경로 및 HTTP 메소드를 설정 하십시오.<httpHandlers>

  • 페이지 오브젝트가에서 검색 할 수 .ASPX의 프로그램 호출 파일 PageParser.GetCompiledPageInstance을 (virtualPath, aspxFileName 컨텍스트)


답변

machine.config 레벨의 소매 모드 :

<configuration>
  <system.web>
    <deployment retail="true"/>
  </system.web>
</configuration>

web.config 설정을 재정 의하여 디버그를 false로 적용하고 사용자 지정 오류를 설정하고 추적을 비활성화합니다. 게시하기 전에 속성을 변경하는 것을 더 이상 잊지 마십시오. 모든 속성을 개발 또는 테스트 환경에 맞게 구성하고 프로덕션 소매 설정을 업데이트하십시오.


답변

사용 MasterPages에 대한 인텔리을 컨텐츠 페이지에서
나는 확실히 이것은 매우 작은 알려진 해킹은 오전

대부분의 경우 findcontrol 메소드를 사용하고 원하는 컨텐츠 페이지에서 마스터 페이지의 제어를 캐스트 해야하는 경우 MasterType 지시문은 일단 Visual Studio에서 인텔리전스 를 활성화합니다.

페이지에 지시문을 하나 더 추가하십시오.

<%@ MasterType VirtualPath="~/Masters/MyMainMasterPage.master" %>

가상 경로를 사용하지 않고 클래스 이름을 대신 사용하려면

<%@ MasterType TypeName="MyMainMasterPage" %>

전체 기사를 여기에서 얻으십시오