Etc.

효성CMS C#으로 개발하면서 발생하는 오류들.

Racle 2014. 6. 11. 18:00

 제공받은것들...

64비트용   C:\xc30

32비트용   C:\xc30_32

 

샘플소스 SDSI_SAMPLE(C#)\csCmsTester  <- 요것으로 연결 테스트.

dll          XC3_ComLib.dll

----------------------------------------------------------------------------------------

dll 파일 참조..

----------------------------------------------------------------------------------------

XC3_ComLib.dll 파일을 참조로 사용.

 

 

 

----------------------------------------------------------------------------------------

레지스트리에 XC3_Com.dll 등록하기

----------------------------------------------------------------------------------------

TEST서버

 

32bit 에서 등록하기

 

C:\xc30_32\import\>regsvr32  XC3_Com.dll

----------------------------------------------------------------------------------------

 

REAL 서버

 

64bit 에서 등록하기


C:\Windows\SysWOW64>regsvr32.exe C:\xc30_32\import\XC3_Com.dll

 

 

----------------------------------------------------------------------------------------

암호화 처리가 안될때....

----------------------------------------------------------------------------------------

            strSourceMsg = htStart["FULL_SYNTAX"].ToString();  // makeStartMsg("MEM", "A");
            string strStartMsg = xc3.encrypt(strSourceMsg);
            if (strStartMsg.Length == 0)
            {
                htRtn["rtnCode"] = "-1";
                htRtn["rtnMsg"] = "시작전문 암호화 스트링 길이 0입니다. 확인하세요.";
                return htRtn;
            }
            type[0] = MSGTYPE_CIPHER;
            htRtn["sendMsg"] = "시작전문 : \r\n" + strSourceMsg;
            byte[] byteStartMsg = strHexToByte(strStartMsg);
            this.xmTokenWrite(byteStartMsg);

 

strStartMsg 암호화 결과값에 0 이면...

 

 

http://blog.naver.com/smin01?Redirect=Log&logNo=140098390546

Dbgview.exe 파일을 받아서 실행해보면

 

인증실패 라는 것을 확인할 수 있다.

 

C:\xc30_32\cert>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: C00E-F9C8

 C:\xc30_32\cert 디렉터리

2014-05-08  오후 02:52    <DIR>          .
2014-05-08  오후 02:52    <DIR>          ..
2010-05-11  오후 02:48             1,156 kmCert.der
2010-06-03  오후 05:28               676 kmPri.key
2014-05-14  오전 08:49               946 signCert.der
2010-02-08  오후 04:36             1,300 signPri.key
               4개 파일               4,078 바이트
               2개 디렉터리   2,275,409,920 바이트 남음

C:\xc30_32\cert>

 

 

인증서 파일을 최근것으로 갱신 하기.

 

 

----------------------------------------------------------------------------------------

XML 데이터를 읽는 동안 최대 문자열 콘텐츠 길이 할당량(8192)을 초과했습니다.

----------------------------------------------------------------------------------------

App.config / Web.config 설정추가하기.

 

http://racle4.tistory.com/242

 

 

 

----------------------------------------------------------------------------------------

REAL에 적용하였으나.... 실패........

----------------------------------------------------------------------------------------

뭐가 인식이 안되는걸까....???

 

System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: [CODE : -50000] General Error in processing execution context. Refer inner exception information.

ExecutionContext : Id=56116851, Type=HIMS.AR.DM.BIZ.HsFmsBiz, Method=RequestMember

(Fault Detail이 IncludeExceptionDetailInFaults=true에 의해 만들어졌을 가능성이 있는 ExceptionDetail의 값은 다음과 같습니다.
TheOne.Transactions.ExecutionProcessingException: [CODE : -50000] General Error in processing execution context. Refer inner exception information.

ExecutionContext : Id=56116851, Type=HIMS.AR.DM.BIZ.HsFmsBiz, Method=RequestMember

 ----> System.FormatException: 0에서 시작하는 인덱스는 0보다 크거나 같아야 하며 인수 목록의 크기보다 작아야 합니다.
   위치: System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)

   위치: System.String.Format(IFormatProvider provider, String format, Object[] args)

   위치: TheOne.Diagnostics.FileLogHelper.Write(String filePrefix, LogLevel level, String format, Object[] args)

   위치: TheOne.Transactions.ComponentBase.WriteLog(LogLevel level, String format, Object[] args)

   위치: TheOne.Transactions.ComponentBase.ExceptionHandler(Exception ex)

   위치: HIMS.Transactions.HIMSBizBase.OnError(Exception ex) 파일 D:\Project\30. 개발\HIMS Core Projects\HIMS.Transactions\HIMSBizBase.cs:줄 31

   위치: The...과(와) 같음).

 

 

 

        private void handshake()
        {

            string strToken = xc3.keyInit();
            type[0] = MSGTYPE_SESSION_KEY;
            Console.WriteLine(strToken);
            byte[] byteToken = strHexToByte(strToken);
            this.xmTokenWrite(byteToken);

            byte[] byteServerToken = this.xmTokenRead();
            string strServerToken = BitConverter.ToString(byteServerToken).Replace("-", string.Empty).ToLower();
            Console.WriteLine("ServerToken : " + strServerToken);

            //byte[] finalRet = xc3.keyFinal(strServerToken, " ", 2);
            object finalRet = xc3.keyFinal(strServerToken, " ", 2);
        }

        private byte[] strHexToByte(string data)
        {
            byte[] byteData = new byte[data.Length / 2];
            int byteDataIdx = 0;
            for (int i = 0; i < data.Length; i = i + 2)
            {
                String strHex = data[i].ToString() + data[i + 1].ToString();
                byteData[byteDataIdx] = byte.Parse(strHex, System.Globalization.NumberStyles.HexNumber);
                byteDataIdx++;
            }
            return byteData;
        }

xc3 인식이 안되서....

 

아래의 방법으로 해결 !!

----------------------------------------------------------------------------------------

구성요소서비스 등록 - 64bit 운영서버에서 32bit DLL 사용하기

----------------------------------------------------------------------------------------

COM+ 폴더추가 하고 DLL등록시킨다.

 

 

http://racle4.tistory.com/247

 

 

 

----------------------------------------------------------------------------------------

구성요소서비스

COM+ 응용프로그램에 등록한 DLL이 서버 대기모드인 경우에는 인식이 안됨.

----------------------------------------------------------------------------------------

20140624 젠장 !!

 

NT 서비스로 응용 프로그램 실행

 

체크로 해결....

 

 

 

----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------