2016. 1. 7. 00:12

내가남긴 질문


asp.net을 지금 처음으로 공부하고 있습니다.

asp에서는 디버깅이 간단하였는데 .net은 처음이라 그런지 아직 좀 힘드네요..

오류내용은 </script> 이 부분이 </scritpt> 이렇게 되면서 "인사말출력" 버튼을 클릭 하였을때,

"안녕"이라는 내용이 나타나지 않았습니다.

visual studio 2013에서는 디버깅 하였을 때 오류가 나타나지 않았습니다.

단지, 크롬에서 개발자도구로 보았을 때 오류메시지가 잠깐 나타났다가 사라졌는데,

이 부분을 한참동안 보았습니다.

이런경우 어떤식으로 디버깅을 하시는지요?

아니면, 하다보면 익숙해지는지..


Default.aspx.cs 페이지


    protected void btnJavaScript_Click(object sender, EventArgs e)

    {

        string strjs = @"

            <script language='javascript'>

                window.alert('안녕');

            </scritpt>   => 문법오류

        ";

        Response.Write(strjs);

    }

  



Default.aspx 페이지

    <form id="form1" runat="server">

        <asp:Button ID="btnJavaScript" runat="server" Text="인사말출력" OnClick="btnJavaScript_Click" />

    </form>




답변


안녕하세요.

말씀한대로 </scritpt> 구문 오류로 스크립트가 실행되지 않고 아무 반응이 발생하지 않은 문제였네요. 

이번 오류 케이스는 오류가 눈에 보이지 않으므로 찾는데 오래 걸리셨을것 같습니다. 

보통 개발시에 서버 코드상의 오류인지, 스크립트 오류인지 먼저 파악하는 게 우선입니다.

먼저 서버 코드에서 오류가 발생 할 경우 구글 개발자 모드 - Network 탭에서 확인이 가능합니다.

이번처럼 Postback이 발생해서 목록이 초기화 되서 보기 힘들때는 바로 아래 Preserver Log 체크를 하시면 로그가 유지되니 쉽게 확인이 가능합니다. 


목록에서 200번 Status 를 리턴하면 정상 처리된 것이고 400번대 Status를 리턴하면 호출한 페이지 및 파일이 없거나 설정에 의해서 찾지 못하는 경우, 

500번대 오류는 서버 코드상에 오류가 발생한 경우입니다.


스크립트 오류의 경우 개발자 탭 제일 우측에 빨간 아이콘으로 오류 개수가 표시됩니다. 

것을 누르시면 콘솔 창에 오류 목록이 표시되고 목록 중 하나를 클릭하면 오류 구문으로 이동됩니다.

이것을 먼저 확인 하시고 진행하시면 오류를 수정하는데 조금 더 속도를 높이 실 수 있을겁니다.

Posted by 팔개
2015. 12. 24. 15:20

1. 버젼에 맞게 AccessDatabaseEngine.exe를 설치한다.

=> OS버젼이 64bit일 경우 AccessDatabaseEngine_X64.exe를 설치한다.


2. sp_configure를 이용하여 아래의 옵션을 활성화 한다.


sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'Ad Hoc Distributed Queries', 1;

GO


3. 엑셀다운로드 할 쿼리를 프로시져로 만든다.

-- OLEDB.4.0SQL2000 버젼임

CREATE PROC EXCEL

       @Path        VARCHAR(100)

AS

       DECLARE @SQL NVARCHAR(4000)

 

       SET @SQL = '

       INSERT INTO

       OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@Path+';Extended Properties=EXCEL 5.0'')...sheet1$

       (goodscode, goodsname, unit, incost, salecost)

       SELECT TOP 10 go_goodscode, go_goodsname, go_unit, gc_incost, gc_salecost

       FROM Goods_TB

       JOIN GoodsCost_TB ON gc_goodscode = go_goodscode

       '

       EXEC SP_EXECUTESQL @SQL

 

EXEC EXCEL 'D:\new\excelTest\goods.xls'



4. 원본엑셀파일을 만든후 원본을 가지고, 해당위치로 복사한다.

<%

fileCreate.asp

Set Fso = Server.CreateObject("Scripting.FileSystemObject")

File = "D:\new\excelTest\goods.xls"

If Fso.FileExists(File) then

  Fso.DeleteFile File                          ' 기존파일삭제

End If


' 원본파일을 해당위치로 복사한다(왜, 엑셀은 DELETE이 안됨)

Fso.CopyFile "D:\goods.xls","D:\new\excelTest\goods.xls"

' 프로시져 실행

Set Rs = Conn.Execute("dbo.EXCEL"


' 엑셀다운받기 

Response.redirect "fileDown.asp?strFileName=goods.xls"

%>



<%

fileDown.asp

문서정의타입을알수없음으로하게되면무조건다운로드시킨다.

다운로드시킬파일을정의한다.

Dim strFileName : strFileName = Request("strFileName")

 

Response.ContentType = "application/unknown"

Response.AddHeader "Content-Disposition","attachment; filename="&strFileName

 

‘ ADODB.Stream으로스트림을읽는다.

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Open

objStream.Type = 1

objStream.LoadFromFile "D:\new\excelTest\"&strFileName

strFile = objStream.Read

Response.BinaryWrite strFile

Set objStream = Nothing

%>

'ASP' 카테고리의 다른 글

웹과 쿼리분석기의 성능이 다를때..  (0) 2016.01.07
asp에서 euc-kr / utf-8 설정 상단 구문  (0) 2015.11.01
SQLInjection 방어하기  (0) 2015.10.29
정규식을 이용한 HTML 태그제거 함수  (0) 2015.03.19
CSRF 방어하기  (0) 2014.01.05
Posted by 팔개
2015. 12. 10. 13:29

쿼리분석기 또는 SSMS로 로그인 하였을 때, 기본으로 설정한 DB가 문제가 발생될 경우 로그인이 불가능 하다.

뭐, 처음부터 설정하지 않으면 되지만..

이럴경우 아래와 같이 진행한다.


C:\Program Files\Microsoft SQL Server\80\Tools\Binn 까지 이동한다.


여기서 80은 SQL버젼임


SQL2000 : 80

SQL2005 : 90

SQL2008 : 100

SQL2012 : 110

SQL2014 : 120


Binn>osql -S .\인스턴스명 -U sa -P 1234(sa암호) -d master

1> sp_defaultdb 'sa', 'master' => 디폴터를 master변경

2> go

기본 데이터베이스를 변경했습니다.


1> exit


하지만, master가 문제가 생기면 방법이 없다.


Posted by 팔개