2013-01-22 1 views
1

한 번에 24 시간 동안 프로세스를 실행해야하는 Microsoft SQL Server CE를 사용하여 ASP.NET 응용 프로그램을 구축하고 있습니다. 어제 나는 밤새도록 시험을 시작했다. 오전 2시 30 분경에 다음 예외가 throw되었습니다.ASP.NET - 왜 갑자기 데이터베이스 파일을 찾을 수 없습니까?

데이터베이스 파일을 찾을 수 없습니다. 데이터베이스의 경로를 확인하십시오. [데이터 소스 =]

다음은 실행 된 코드입니다.

public class DataHelper 
{ 
    private string _connectionString = ConfigurationManager.ConnectionStrings["myConnString"].ConnectionString; 
    public void ExecuteNonQuery(string SQL) 
    { 
    using (SqlCeConnection _conn = new SqlCeConnection(_connectionString)) 
    { 
     _conn.Open(); 
     using(SqlCeCommand _cmd = new SqlCeCommand(SQL, _conn)) 
     { 
     _cmd.ExecuteNonQuery(); 
     } 
    } 
    } 
} 

그리고 내 Web.config의 내 테스트에 대한

<configuration> 
    <connectionStrings> 
    <add name="myConnString" connectionString="data source=|DataDirectory|\myDB.sdf"/> 
    </connectionStrings> 

내가 비주얼을 사용하여 ASP.NET 응용 프로그램을 실행하고이있다 : 그것은 내가 데이터 액세스에 사용하는 도우미 라이브러리 스튜디오 개발 웹 서버 (IIS 아님). 응용 프로그램은 12 시간 조금 넘게 실행되었습니다. 그런 다음 갑자기 위의 예외가 발생했습니다. 왜 모든 아이디어가 갑자기 데이터베이스를 찾을 수 없습니까? 내 첫 번째 생각은 VS 개발 웹 서버가 응용 프로그램 풀 또는 무언가를 재활용했고 시스템이 연결 문자열을 잃어 버렸다는 것입니다.

+2

24 시간 동안 프로세스를 실행해야하는 ASP.NET 응용 프로그램을 작성하는 이유는 무엇입니까? 이는 Windows 서비스, 콘솔 응용 프로그램 또는 WinForms 응용 프로그램에 훨씬 더 적합한 작업입니다. ASP.NET은 이러한 용도로 설계되지 않았으므로 비정상적인 동작이 예상 될 수 있습니다. IIS 리셋, 앱 풀 리셋 등. 예측할 수없는 일들이 너무 많아서 다른 애플리케이션 유형의 요소가 아닙니다. IIS가 아닌 Cassini (Visual Studio 웹 서버)를 실행하는 경우에도 장기 실행 프로세스에서 문제가 발생할 수 있습니다. – David

+0

나는 이것을 계승하고 아키텍처 결정을 이미 내렸다. 우리는 이미 언급 한 것과 정확히 다른 아키텍처를 사용하여 버전 2를 계획하고 있습니다. 그러나 지금은이 일을하기 위해 최선을 다해야합니다. –

+0

누군가가 귀하의 질문에 답변 할 수 있기를 희망합니다. 그러나 대답은 ASP.NET과 장기 실행 프로세스의 고유 문제와 관련이 있으며, 장기적인 프로세스를 별도의 앱. 고맙게도 asp.net 코드를 OCnsole 앱에 이식하는 것은 그리 어렵지 않지만 좀 더 쉬운 대답을 찾길 바랍니다. 행운을 빕니다! (솔직하게 말해서, 냉소적이지 마라.) – David

답변

0

이것이 실제로 원래 질문에 대한 답변인지 확실하지 않지만 Windows 서비스에서 호스팅되는 WCF 서비스로 장기 실행 응용 프로그램의 내용을 나누었습니다. 지금 나는 원래 가지고있는 문제가 없다.

관련 문제