2012-04-25 11 views
0

내 프로젝트에 CassiniDevServer을 사용하고 있습니다. CassiniDevServer 클래스의 객체를 만든 다음 start() 메서드를 호출하여 적절한 인수를 전달합니다.서버에 연결할 수 없습니다.

서버는 브라우저에서 웹 페이지를 올바르게 호스트하고 렌더링합니다. 그러나 잠시 후, 갱신 할 때, 브라우저

가 로컬 호스트에 연결할 수 없습니다 말합니다 : 서버가 잠시 후 정지됩니다 것 같다

을 PORTNO. 왜 그래야만하지? 어떻게 이것을 피할 수 있습니까? 쓰레기 수거가 되었습니까? 내가 MycassiniDevUtil의 객체를 생성하고이 메서드를 호출 호출 코드에서

public CassiniDevServer launchWebsite(string path, string navigate, int _portNo) 
    { 
    CassiniDevServer _server = new CassiniDevServer(); ///server 

    cassiniServerList.Add(_server); 
    _server.StartServer(path, _portNo, "/", "localhost"); 
    portNo = _portNo; 

    System.Diagnostics.Process.Start("http://localhost:" + portNo + 
      "/" + navigate); 
    return _server;   
    } 

:

나는 클래스 메소드 다음있다 MyCassiniDevUtil 있습니다. 이 메소드는 현재 작성된 서버 인스턴스에 대한 참조를 리턴합니다. 나는이 참조를 호출 코드 클래스에 할당한다.

실제로 두 클래스 모두에 대한 참조가 있지만 여전히 가비지 수집을하고 있다고 느낍니다. 그렇지 않다면 몇 분 후에 브라우저를 새로 고침하여 연결이 안되는 이유를 이해하지 못합니다.

+0

어떻게 작성하고 있는지 등을 보지 않고는 대답하기가 불가능합니다. 몇 가지 코드를 보여주십시오. – NotMe

+0

다음과 같은 메소드가있는 MyCassiniDevUtil 클래스를 작성했습니다. – Mahesha999

+0

코드가 원래 질문에 추가되었습니다. – Mahesha999

답변

1

CassiniDev에서 CassiniDevServer 클래스의 개체를 만드는 대신; 패키지는, 나는 (이 시간 제한 속성을 지정할 수 있기 때문에) 다음과 같이 서버 클래스의 객체

 System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1"); 
     Server _server1 = new Server(_portNo, "/", path, ip, "localhost", 1800000); 
     _server1.Start();    

_portNo는 모든 포트 번호가 생성 - 가능하면 사용하지 않는 포트 번호의 범위.

 Random rn = new Random(); 
     int _portNo = rn.Next(1500, 4000); 

경로가 웹 사이트 폴더 (의 Web.config, AppCode,의 AppData이 들어있는 것)에 대한 물리적 경로 다음과 같이 동적으로하고 randomaly 하나를 생성합니다.

1800000은 30 분 동안의 밀리 초입니다.

가/주소 http://localhost에서 호스팅되는 웹 사이트를 얻을 수 지정됩니다 < _portNo>/

그러나 누군가가 명확히 수 뭐죠 CassiniDevServer 및 CassiniDev 패키지 서버 클래스의 차이.

+0

감사합니다. Mahesha999 내 인생을 저장하십시오. – embarus

+0

@embarus CassiniDev 패키지의 CassiniDevServer와 Server 클래스 간의 차이점에 대해 알고 싶다면 – Mahesha999

+0

OK를 회신하는 것을 잊지 마십시오. 지금은 두 클래스 사이에 차이점을 보지 못했습니다. :) – embarus

0

CassiniDevServer 개체의 TimeOut 옵션을 확인해야합니다.

을 종료하기 전에 서버가 유휴 상태가되는 시간 (분)입니다. 이 종료됩니다. 나는 당신이 이것을 설정하는 곳을 보지 못했기 때문에, 서버 자체가 꺼져있을 가능성이 큽니다.

이제 참조를 유지하는 한 가비지 수집되지 않습니다. 그러나 그것은 위의 이유로 빨간 청어입니다.

+0

어떻게 CassiniDev의 시간 초과를 설정할 수 있습니까? – Mahesha999

+1

@ Mahesha999 : http://cassinidev.codeplex.com/discussions/290617 – NotMe

관련 문제