달력

5

« 2025/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2017. 2. 28. 15:28

IIS ApplicationPool 제어하기 학습/C#2017. 2. 28. 15:28

사용 DLL

Microsoft.Web.Administration


Nuget패키지 설치

Install-Package Microsoft.Web.Administration -Version 7.0.0


버전7.0.0을 사용하시길 바랍니다.

버전7.9.0은 IIS Express를 사용하기때문에 리스트 및 제어가 안됩니다.


private static void ApplicationPoolStatus()

        {   //객체생성

            ServerManager server = new ServerManager();

            //ApplicationPool의 리스트 가져오기

            ApplicationPoolCollection applicationPools = server.ApplicationPools;


            foreach (ApplicationPool pool in applicationPools)

            {

                Console.WriteLine("Name : {0}, State : {1}", pool.Name,pool.State);

                //만약 testPool이라는 응용프로그램 풀이 있다면

                if (pool.Name.Equals("testPool") == true)

                {

                    //해당 상태가 정지상태라면

                    if (pool.State == ObjectState.Stopped)

                    {

                        //상태를 사용중으로 바꾼다

                        pool.Start();

                    }

                }

            }            

        }


IIS 응용프로그램풀의 제어 및 리스트불러올때는 Aministrator 권한이 필요합니다.

개발중 로컬에있는 IIS 응용프로그램 풀을 테스트 해보시고싶다면 Visual Studio를 관리자 권한으로 실행시키시면됩니다.




혹시 틀린부분이 있다면 지적해주시면 감사하겠습니다.

'학습 > C#' 카테고리의 다른 글

[C#]Tray 적용하기  (1) 2014.06.13
[C#]CrossThread 처리방법  (0) 2014.05.16
:
Posted by 쩡용
2016. 4. 15. 15:19

원격데스크톱 연결 허용하기 학습/서버관련2016. 4. 15. 15:19

Window7

컴퓨터 오른쪽클릭 -> 속성 -> 원격 설정 -> 원격 지원 그룹에 이 컴퓨터에 대한 원격 지원 연결 허용 체크

원격데스크톱 그룹에서 모든 버전의 원격 데스크톱을 실행 중인 컴퓨터에서 연결 허용(보안 수준 낮음)으로 라디오박스 체크

제어판 -> Windows방화벽 -> Windows 방화벽을 통해 프로그램 또는 기능 허용 -> 허용되는 프로그램 및 기능에서 원격 데스크톱 개인과 공용에 체크


Windows 8 이상

컴퓨터 오른쪽클릭 -> 속성 -> 원격 설정 -> 원격 지원 그룹에 이 컴퓨터에 대한 원격 지원 연결 허용 체크

원격데스크톱 그룹에서 이 컴퓨터에 대한 원격 연결 허용(L)으로 라디오박스 체크

제어판 -> Windows방화벽 -> Windows 방화벽을 통해 프로그램 또는 기능 허용 -> 허용되는 프로그램 및 기능에서 원격 데스크톱 개인과 공용에 체크


Ctrl + R -> mmc.exe실행 파일 -> 스냅인 추가/제거 -> 컴퓨터구성 -> 정책_관리 템플릿 -> Windows구성 요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결 -> Allow users to connect remotelty by using Remote Desktop Service(원격 데스크톱 서비스를 사용한 원격연결 허용)을 더블클릭후 사용으로 변경


Ctrl + R -> mmc.exe실행 파일 -> 스냅인 추가/제거 -> 컴퓨터구성 -> 정책 - > 관리 템플릿 -> 네트워크 -> 네트워크연결 -> Windows방화벽 -> 도메인프로필 -> Window방화벽 인바운드 원격 데스크톱 예외 허용 사용으로 변경


:
Posted by 쩡용

실행창 -> gpedit.msc


로컬 컴퓨터 정책 -> 컴퓨터 구성 -> 관리 템플릿 -> Windows구성 요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결 -> 연결 개수 제한 사용으로 선택후 옵션부분 TS 최대 허용 연결 변경후 확인


이후


로컬 컴퓨터 정책 -> 컴퓨터 구성 -> 관리 템플릿 -> Windows구성 요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결 ->원격 데스크톱 서비스 사용자를 하나의 원격 데스크톱 서비스 세션으로 제한 사용안함으로 변경후 확인


Windows Server 2012 R2 Standard에서 확인하였습니다.

:
Posted by 쩡용
2015. 9. 4. 17:54

[MSSQL]restore하기 학습/SQL2015. 9. 4. 17:54

RESTORE FILELISTONLY FROM DISK='bak파일 경로'



RESTORE DATABASE 생성할데이터베이스명 FROM DISK='bak파일 경로'

WITH MOVE 'LogicalName1번' TO 'mdf파일 생성경로',

MOVE 'LogicalName2번' TO 'log파일 생성경로'

'학습 > SQL' 카테고리의 다른 글

[MSSQL]String yyyyMMddHHmmssmmm 을 DateTime형식으로 Convert하기  (0) 2014.12.11
SQL join개념  (0) 2014.06.27
:
Posted by 쩡용

방화벽 설정에서 /Windows/System32/inetsrc/inetinfo.exe 파일을 예외 항목에 추가 해주시면 접속이 가능해집니다.


Windows 7 이신경우 제어판 -> 방화벽 -> 고급설정 -> 인바운드규칙에들어가셔서 새규칙 - > 프로그램에서 

추가시켜주시면되고


Windows Server라면 제어판 -> 방화벽 -> Windows 방화벽 설정 또는 해제 -> 예외탭 -> 프로그램추가

에서 추가시켜주시면됩니다.


PS. 분명히 전 서버의 방화벽 이나 FTP의 설정 하나 건드린게없는데...

갑자기 접속이 안되서 3시간동안 삽질했네요...

:
Posted by 쩡용


select convert(datetime,stuff(stuff(stuff(stuff('20141211173824123',9,0,' '),12,0, ':'), 15,0,':'),18,0,'.'))





-- 테스트용 코드 (getdate()함수로 현재시간을 가져와 string형태로 바꿔주고 바뀐string형태를 다시 DateTime형식으로 바꿔주는코드

DECLARE @date as varchar(17)

SET @date = REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar, GETDATE(), 121),'-',''), ' ', ''), ':',''),'.','')

select @date

select convert(datetime,stuff(stuff(stuff(stuff(@date,9,0,' '),12,0, ':'), 15,0,':'),18,0,'.'))


더 좋은 방법이있다면 알려주세요^^

'학습 > SQL' 카테고리의 다른 글

[MSSQL]restore하기  (0) 2015.09.04
SQL join개념  (0) 2014.06.27
:
Posted by 쩡용
2014. 10. 30. 09:34

[ASP.NET] GridView 데이터 Excel로 만들기 학습/ASP.NET2014. 10. 30. 09:34



protected void SaveFileButton_Click(object sender, EventArgs e)

{

string filename = DateTime.Now.ToString("yyyy-MM-dd") + ".xls";


Response.Clear();

Response.Buffer = true;

Response.AddHeader("content-disposition", "attachment;filename=" + filename);

Response.Charset = "utf-8";

Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

Response.ContentType = "application/vnd.xls";

StringWriter sw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(sw);


for (int i = 0; i < GridView1.Rows.Count; i++)

{

GridView1.Rows[i].Attributes.Add("class", "textmode");

}

GridView1.RenderControl(hw);


string style = @"<style> .textmode {mso-number=format:\@; } </style>";

Response.Write(style);

Response.Output.Write(sw.ToString());

Response.Flush();

Response.End();

}


만약에 마스터 페이지를 사용하고있을경우 GridView1은 form태그 내부에 와야 합니다 라는 에러가뜬다.

그럴땐 VerifyRenderingInServerForm을 override시켜주면된다.


public override void VerifyRenderingInServerForm(Control control)

{

//Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time

}


VerifyRenderingInServerForm을 override시키고 Render에서 오류가 날시에는




페이지 테그단에서 EnableEventValidation값을 넣어주고 false로 설정해주면 된다.

:
Posted by 쩡용

프로젝트를 하는도중 ASP.NET 비하인드 코드단에서 html을 수정해야되는 경우가 생겼다.


수정을해야될 div컨트롤에 runat="server"를 추가시켜줘 비하인드 코드에서 불러올수 있게 하고

 <div id="test runat="server">

</div>


비하인드코드에서

string str = string.empty;

str = "<h5>Test입니다.</h5>;

test.InnerHtml = str; 

이런 방식으로 해결을 하였다.

:
Posted by 쩡용
2014. 10. 6. 14:32

[ASP.NET]GridView DataformatString 학습/ASP.NET2014. 10. 6. 14:32

BoundField를 사용하여 DataSet에 있는 값들을 Binding시킬때

날짜나 소숫점에대해 String Format형식을 바꾸고싶다면


<asp:BoundField> 안에 DataFormatString을 사용하면 된다.


ex


2014-10-06일을 10-06으로 나타내고싶다면


<asp:BoundField HearderText="조회날짜" DataField="startDate" DataFormatString="{0:MM-dd}" HtmlEncode="false"/>


HtmlEncode를 빼면 원인은 모르겠지만 오류가난다...


날짜포맷 문자 설명


짧은날짜 

2014-10-06 

 D

 긴 날짜

2014년 10월 6일 월요일 

 f

 긴 날자와 짧은 시간

2014년 10월 6일 월요일 오전 12:00 

 F

 긴 날짜와 긴 시간

2014년 10월 6일 월요일 오전 12:00:00 

 t

짧은 시간 

오전 12:00 

 T

긴 시간 

오전 12:00:00 

 Y , y

년도와 월 

2014년 10월 


숫자 포맷문자 설명


C , c

통화포맷  

$1,234.60, \2,000 

 D , d

십진수 

235, -50 

 E , e

과학 계산용 지수 

1.23E+21, -1.4e+3 

F , f 

고정소수점 

34.500, -0.1230 

 G , g

일반 

값에 따라 다름 

N , n 

숫자 

3,456.23, -5.432 

P , p 

퍼센트 

50%, 35.5% 

X , x 

16진수 

&H3f46, 0,4618(값에 따라 다름) 




:
Posted by 쩡용


ASP.NET페이지에는 Form인증을 통한 로그인을 구현할수있다.
기본적으로 제공되는 인증방법은 Window인증, Passport인증, Form인증등이 None인증 등이있는데
구현할 Form인증 부분에서는 웹기반 인증처리를 web.config에서 관리하여 페이지별로 인증을 확인할 필요가없다.
인증 되었을시에 클라이언트에 Form이름이 쿠키값으로 지정되고 web.config에서 클라이언트에 쿠키가 존재하는지 확인하여 인증여부를 확인할수 있다.

web.config의 <system.web>부분에 추가시켜주면된다.

<authentication mode="Forms">
      <forms name="Login" loginUrl="Login.aspx" timeout="15">
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

추가시켜줄시 모든 페이지가 폼인증을 통하여 들어갈수 있으며

Form인증 없어도 들어갈수있게 하는방법은


<system.web>밖에


<location path="MainForm.aspx">

    <system.web>

      <authorization>

        <allow users="*"/>

      </authorization>

    </system.web>

  </location>


이렇게 작성하면 MainForm.aspx페이지는 폼인증 없이도 들어갈수가있다.


그리고 Login페이지를 만들어준다.

<head>

<title>로그인하기폼</title>

    <script runat="Server">

        void Login_Click(object sender, EventArgs e)

            {

                if ((UserId.Text == "admin") && (UserPw.Text == "admin"))

                {

                    FormsAuthentication.RedirectFromLoginPage(UserId.Text, false);

                    Response.Redirect("Today.aspx");

                }

                else

                {

                    Msg.Text = "ID 또는 PW가 틀립니다. 다시시도해주세요";

                }

            }

    </script>

</head>

<body>

        <h3 align="center" style="margin-right:170px">

            Login Page</h3>

        <table align="center">

            <tr>

                <td>

                    ID :

                </td>

                <td>

                    <asp:TextBox ID="UserId" runat="Server"></asp:TextBox>

                </td>

                <td>

                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="UserId"

                        Display="Dynamic" ErrorMessage="ID는 빈값이 들어갈수 없습니다." runat="Server"></asp:RequiredFieldValidator>

                </td>

            </tr>

            <tr>

                <td>

                    PW :

                </td>

                <td>

                    <asp:TextBox ID="UserPw" TextMode="Password" style="margin-top:5px" runat="Server"></asp:TextBox>

                </td>

                <td>

                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="UserPw"

                        ErrorMessage="PW는 빈값이 들어갈수 없습니다." runat="Server"></asp:RequiredFieldValidator>

                </td>

            </tr>

            <tr>

            <td>

            </td>

            <td align="right">

            <asp:Button ID="Submit1" OnClick="Login_Click" Text="로그인" style="margin-top:5px" runat="Server" />

            </td>

            <td>

            </td>

            </tr>

        </table>

        

        <p align="center">

            <asp:Label ID="Msg" ForeColor="Red" runat="Server"></asp:Label>

        </p>

</body>



로그인 페이지는 디자인폼에서 이렇게 설정해주면된다.


만약 폼인증 없이 들어가는 부분에 보여서는 안될 버튼들이 있다면

protected void Page_Load(object sender, EventArgs e)

        {

            if (this.User.Identity.IsAuthenticated)       //로그인이 되어있다면.

            {

                FileUpload1.Visible = true;                //FileUpload컨트롤을 보여준다.

                btn_Upload.Visible = true;                //btn_Upload버튼을 보여준다.

            }

            else                                                 //로그인이 안되어있다면

            {

                FileUpload1.Visible = false;            //FileUpload컨트롤을 보여주지않는다.

                btn_Upload.Visible = false;            //btn_Upload버튼을 보여주지않는다.

            }

  }


폼 로드 부분에 이런식으로 셋팅을 해주면 폼인증 하였을때만 보여지게 된다.


로그아웃은


<head runat="server">

    <title></title>

    <script runat="Server">

        void Signout_Click(object sender, EventArgs e)

        {

            FormsAuthentication.SignOut();

            Response.Redirect("Today.aspx");

        }    

    </script>


</head>


자바스트립트로 구현을 하여 head부분에 추가시켜주고


body부분에 버튼을 추가시켜주면된다.

<asp:Button ID="btn_logout" OnClick="Signout_Click" runat="Server" Text="Logout" />



:
Posted by 쩡용