ASP.NET 웹 폼 웹 사이트를 새 서버로 마이그레이션하고 있습니다. 이전 서버에서 웹 사이트의 루트에있는 App_Data 폴더에 데이터베이스가있었습니다. 내 새 서버에서 루트 외부의 다른 폴더에 데이터베이스가 있고 모든 작동합니다.프로필 명령은 App-Data 폴더와 ASPNETDB.MDF를 생성합니다.
하지만 이상한 일이 발생합니다. 웹 사이트에 가서 서핑을 할 때 갑자기 App_Data 폴더가 ASPNETDB.MDF라는 데이터베이스가있는 사이트의 루트 폴더에 생성됩니다. 나는 그것을 지울 수 있지만 잠시 후에 다시 나타난다.
나는 몇 가지 테스트를했고, 시도, 나는이 코드를 실행할 때 나는 DB가 생성되고 있음을 발견 :TestLabel.Text = Profile.MyProfileParameter.ToString();
그래서 나는 그것을 유발 호출되는 프로필해야합니다 생각합니다. 내 Web.config의에서 나는 다음과 같은 한 : (약간 감소, 내가 더 프로파일 매개 변수가)
<profile enabled="true">
<properties>
<add name="MyProfileParameter" type="Int32" defaultValue="30"/>
</properties>
</profile>
내 Web.config의 최대 약간 높은 난 내 루트 외부 데이터베이스를 가리키는 ConnectionString을이 폴더 :
<connectionStrings>
<add name="ConnectionString" providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TheNameOfMyDatase;Integrated Security=True;MultipleActiveResultSets=True" />
</connectionStrings>
프로필에 대한 호출로 인해 데이터베이스가 생성되는 이유는 누구나 알 수 있습니까? 실제 쇼 스토퍼가 아니지만 이것이 왜 발생하는지 알고 싶습니다.
일부 추가 정보 :
- 내 기존 서버 내 새로운 서버에서 Windows Server 2008 R2
- 내 응용 프로그램이 3.5
ASP.NET에서 실행되고있다 2003
명백하게 sti web.config에 대해 배울 점이 많습니다.
web.config 외에 web.config가 상속하는 machine.config도 있습니다. 섹션 <profile>
에서이 시스템 설정에서 이 설정이 있습니다 :
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
이 설정은 (I이 정말 필요하다 생각하지 않습니다) 나는 localSqlServer를 제거 Web.config의
첫째로 대체 할 수 있습니다 내 <connectionStrings>
에 명확한 명령을 추가하여 연결 문자열에서 :
<connectionStrings>
<!-- clear command removes localSqlServer from machine.config -->
<clear />
<add name="ConnectionString" providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TheNameOfMyDatase;Integrated Security=True;MultipleActiveResultSets=True" />
</connectionStrings>
나는 내 사이트를 실행하는 경우는 이제 연결 이름을 말하는 오류가 'LocalSqlServer'을 (를) 찾을 수 없습니다.
그래서 나는<profile>
섹션에 새로운 프로 바이더를 추가하고 이제 모두가 갑자기 나타나는 미세 더 이상 데이터베이스를 작동 내 ConnectionString을 <profile enabled="true">
<providers>
<!-- clear command removes localSqlServer from machine.config -->
<clear/>
<add name="AspNetSqlProfileProvider" connectionStringName="ConnectionString" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
에 가리 킵니다.
방향을 알려 주셔서 감사합니다. 보너스는 당신 것입니다!
4.0 또는 4.5와 같은 이전 버전과 새 서버의 OS 버전과 같이 타겟팅하려는 Asp.Net의 버전. – ijaz