Как изменить пользовательские ошибки удаленного веб-сайта IIS6 с помощью MSBuild - PullRequest
1 голос
/ 15 декабря 2009

Я пытаюсь использовать «Microsoft.Sdc.Tasks.Web.Website.UpdateHttpErrorSetting» для изменения сообщений об ошибках http удаленного веб-сайта IIS. В частности, документации для этой задачи несколько не хватает, и я не нашел способа успешно ее использовать. Я хотел бы, чтобы ошибка http 404 загружала URL вместо файла 404b.html по умолчанию. Я попытался использовать задачу как таковую:

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

Я получаю исключение при выполнении задачи, но мне не ясно, чего мне не хватает:

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()

Дальнейшее понимание очень приветствуется.

1 Ответ

0 голосов
/ 17 декабря 2009

Как я себе представлял, мое задание было неверным. HTTP-ошибки верхнего уровня, такие как 404, требуют указать 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.

...