0

InstallShield 2009에서 설치 한 웹 사이트에 HTTP 사용자 정의 오류 메시지를 설정하려면 어떻게합니까?InstallShield 2009에서 여러 IIS 사용자 정의 HTTP 오류 메시지 설정

눈에 띄게 단순 해 보입니다. 웹 사이트 또는 가상 디렉터리 개체를 만들 수있는 인터넷 정보 서비스보기가 있으며 이러한 개체의 탭 중 하나가 사용자 지정 HTTP 오류 메시지를 설정할 수있는 것처럼 보입니다.

심지어 1 또는 2 오류 메시지를 재설정하는 데 작동하지만 모든 HTTP 오류 메시지를 다시 설정하려고하면 오류가 발생합니다.

특히이 나의하면 Installshield 프로젝트 (XML 파일 형식)에 ISIISCommon 테이블입니다 :

<table name="ISIISCommon"> 
    <col key="yes" def="s72">ISIISCommon</col> 
    <col def="S72">ISIISCommon_Parent</col> 
    <col def="L255">DisplayName</col> 
    <col def="s50">RootDir</col> 
    <col def="i4">Attributes</col> 
    <col def="L255">DefDoc</col> 
    <col def="I4">SessionTimeout</col> 
    <col def="I4">ScriptTimeout</col> 
    <col def="S255">AnonyUserName</col> 
    <col def="S255">AnonyPasswrd</col> 
    <col def="S0">CustomErrors</col> 
    <col def="L255">AppName</col> 
    <col def="S72">SSLCert</col> 
    <col def="L72">AppPool_</col> 
    <col def="S255">Aspversion</col> 
    <col def="S255">SslPassword</col> 
    <col def="S255">HostHeaderName</col> 
    <row><td>ISIISCommonVRoot</td><td>ISIISCommonWebsite1</td><td>##ID_STRING121##</td><td>WEB</td><td>25873</td><td>Index.html</td><td>20</td><td>90</td><td/><td/><td>400,*,URL,CustomError.html;401,1,URL,CustomError.html;401,2,URL,CustomError.html;401,3,URL,CustomError.html;401,4,URL,CustomError.html;401,5,URL,CustomError.html;403,1,URL,CustomError.html;403,10,URL,CustomError.html;403,11,URL,CustomError.html;403,12,URL,CustomError.html;403,13,URL,CustomError.html;403,14,URL,CustomError.html;403,15,URL,CustomError.html;403,16,URL,CustomError.html;403,17,URL,CustomError.html;403,2,URL,CustomError.html;403,3,URL,CustomError.html;403,4,URL,CustomError.html;403,5,URL,CustomError.html;403,6,URL,CustomError.html;403,7,URL,CustomError.html;403,8,URL,CustomError.html;403,9,URL,CustomError.html;404,*,URL,CustomError.html;405,*,URL,CustomError.html;406,*,URL,CustomError.html;407,*,URL,CustomError.html;412,*,URL,CustomError.html;414,*,URL,CustomError.html;500,*,URL,CustomError.html;500,100,URL,CustomError.html;500,12,URL,CustomError.html;500,13,URL,CustomError.html;500,15,URL,CustomError.html;501,*,URL,CustomError.html;502,*,URL,CustomError.html</td><td>##ID_STRING127##</td><td/><td>##ID_STRING31##</td><td/><td/><td/></row> 
</table> 

당신이 알다시피, 나는이로 리디렉션 내 가상 디렉터리에 HTTP 오류를 모두 설정하려고 CustomError.html 페이지 또한이 정보를 자체 요소가 아닌 TD 요소 내에 저장하는 것은 오류, 특히 InstallShield/Windows Installer의 오류에 결함이 있다고 생각합니다.

다양한 수준에서 작동하지 않습니다.

가장 먼저, 여기에 설치 로그는, 그것의 모양으로

MSI (s) (60:14) [12:28:49:025]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI72A0.tmp, Entrypoint: CreateIISVRoots 
    InstallShield 12:28:49: User legacy object preference is the following: 1 . This is based on the value of the following property: IISPREFERLEGACYOBJECTS 
    InstallShield 12:28:49: InitIISObject 
    InstallShield 12:28:49: CreateAppPoolFunction 
    InstallShield 12:28:49: OpenKeyLog, pszMDPath =/LM 
    InstallShield 12:28:49: AddKey, pszMDPath = /W3SVC/AppPools/MyAppPool 
    InstallShield 12:28:49: OpenKeyLog, pszMDPath =/LM/W3SVC/AppPools/MyAppPool 
    InstallShield 12:28:49: getvaluelog 
    InstallShield 12:28:49: SetVRtStrProperty for property '1002' with value 'IIsApplicationPool' and strSubPath '/'. 
[zip] 
    InstallShield 12:28:49: SetVRtStrProperty for property '6006' with value 'Index.html' and strSubPath '/'. 
    InstallShield 12:28:49: SetData, pszMDPath =/
    InstallShield 12:28:49: SetVRtDelimMultiszProperty for property '6008' with value '400,*,URL,CustomError.html;401,1,URL,CustomError.html;401,2,URL,CustomError.html;401,3,URL,CustomError.html;401,4,URL,CustomError.html;401,5,URL,CustomError.html;403,1,URL,CustomError.html;403,10,URL,CustomError.html;403,11,URL,CustomError.html;403,12,URL,Cus'. 
    **InstallShield 12:28:49: SetVRtMultiszProperty for property '6008' and value '400,*,URL,CustomError.html' with length '522'**. 

, 그것은 그 522 개 문자는 사용자 지정 오류를 설명하는 데 사용되는하지 않는 것처럼. IIS에서는 처음 259 자만 사용되었으므로 소수의 사용자 지정 오류가 올바르게 설정되었고 마지막 하나가 잘못되었습니다 (403.12의 결과 오류 URL은 "cus"임).

이 제한을 해결할 방법이 있습니까?

답변

0

CustomError 페이지의 이름을 CustomError.html에서 ce.htm으로 변경했습니다. 이로 인해 공간이 절약되었지만 충분하지 않았습니다. 더 큰 문자 버퍼 세이버는 좋은 오래된 *이었습니다. 401,2, URL, CustomError.html; ...; 401,13, CustomError.html, 401,2, URL, CustomError.html

대신

401,1, URL, CustomError.html의

제가 사용하게 :

401 * FILE, ce.htm;

그리고이 가상 디렉터리 행은 ISIISCommon 테이블에 지금의 모습 :

<row><td>ISIISCommonVRoot</td><td>ISIISCommonWebsite1</td><td>##ID_STRING121##</td><td>WEB</td><td>25873</td><td>Index.html</td><td>20</td><td>90</td><td/><td/><td>400,*,FILE,ce.htm;401,*,FILE,ce.htm;403,*,FILE,ce.htm;404,*,FILE,ce.htm;405,*,FILE,ce.htm;406,*,FILE,ce.htm;407,*,FILE,ce.htm;412,*,FILE,ce.htm;414,*,FILE,ce.htm;500,*,FILE,ce.htm;501,*,FILE,ce.htm;502,*,FILE,ce.htm</td><td>##ID_STRING127##</td><td/><td>##ID_STRING31##</td><td/><td/><td/></row> 

것은이 사람이 401.1과 401.2에 대해 서로 다른 고객의 오류를하고 싶은 경우 어떻게 (모든 시나리오에 적합하지 않을 수 있습니다 ?).

또한이 변경을 InstallShield XML 프로젝트 파일에서 직접 수행해야합니다. GUI는이를 이해하지 못하기 때문에 (프로젝트를로드하고 사용자 정의 오류 탭 엉망입니다, 나는 단지 DEFAULT 또는 suberror 전문 항목을 할인, 결과 MSI 파일에 없거나 Orca가 말하는 것입니다).

URL에서 FILE로 이동했는데, 후자는 인증과 직각으로 보입니다.

더 나은 해결책을 읽는 것이 좋을 것입니다. 그리고 나는 왜 그런 테이블 세계에서 왜 그런 식탁을 저장하는 것이 좋은 생각인지 궁금해합니다.