1

"Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting"을 사용하여 원격 IIS 웹 사이트의 http 오류 메시지를 변경하려고합니다. 특히이 작업에 대한 설명서가 다소 부족하고 성공적으로 사용하는 방법을 찾지 못했습니다. http 404 오류가 기본 404b.html 파일 대신 URL을로드하고 싶습니다. 나는 같은 작업을 사용하여 시도했다 :MSBuild를 사용하여 원격 IIS6 웹 사이트의 사용자 지정 오류를 수정하는 방법

Using "Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting" task from assembly "c:\Microsoft.Sdc.Tasks.dll". 
Task "Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting" 
error : A task error has occured. 
error : Message  = Object reference not set to an instance of an object. 
error : ErrorCode  = 404 
error : SubErrorCode = <String.Empty> 
error : Uri   = /errors/mycustom404.htm 
error : Type   = URL 
error : DirectoryType = WebDir 
error : MachineName = testMachineName 
error : WebSiteName = testSiteName 
error : Path   = . 
error : DirectoryName = <String.Empty> 
error : 
error : at Microsoft.Sdc.Tasks.Web.WebSite.UpdateHttpErrorSetting.InternalExecute() 

또한 통찰력은 매우 환영합니다 :

<Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting 
    ErrorCode="404" 
    MachineName="$(MachineName)" 
    WebSiteName="$(SiteName)" 
    Path="." 
    Uri="/errors/mycustom404.htm" 
    Type="URL" 
    DirectoryType="WebDir" /> 

작업이 실행하지만 난 내가 무엇을 누락에 명확하지있을 때 나는 예외가 .

답변

0

상상했듯이, 작업의 내 사용법이 올바르지 않습니다. (404)와 같은 최고 수준의 HTTP 오류는 "*"SubErrorCode 값을 지정해야합니다 :

<Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting 
    ErrorCode="404" 
    SubErrorCode="*" 
    MachineName="$(MachineName)" 
    WebSiteName="$(SiteName)" 
    Path="." 
    Uri="/errors/mycustom404.htm" 
    Type="URL" 
    DirectoryType="WebDir" /> 

이것은 SubErrorCode 속성에 대한 설명서에 실제로있다.

이 매개 변수가 지정되지 않았거나 올바르지 않은 경우 작업이 시스템의 http 오류 컬렉션에서 수행하는 조회에 의해 null 참조가 발생합니다. 반환 된 null에 대한 검사가 없습니다.