2013-10-06 3 views
1

창문이 하늘에서 떨어지는 사이트가 있고 링크 된 리소스를 통해 데이터베이스에 연결되어 사이트가 데이터베이스를 사용해야하는 것처럼 보입니다. 또한 web.config 파일에 적절한 연결 문자열을 포함 시켰습니다.Azure 사이트는 원격 데이터베이스를 사용하여 로컬로 실행하는 경우에만 작동합니다.

웹 사이트를 로컬로 실행하고 하늘빛 데이터베이스의 연결 문자열을 기본 연결에 사용하면 모든 것이 작동하고 로컬 컴퓨터의 데이터 업데이트가 원격 데이터베이스에 반영된 것을 보았습니다.

데이터베이스 히트 (즉, 로그인하거나 기본 뷰 (스캐 폴드 아웃 뷰에서)를 보는 페이지)에 액세스하려고 할 때마다 500 오류가 발생합니다. 나는 사용자 정의 오류를 켜려고했지만 500 오류는 모두 얻을 수 있습니다. 내 로컬 컴퓨터에서 디버깅을 시도했으나 사이트를 로컬에서 실행하고 하늘색 데이터베이스에 연결할 때 모든 것이 제대로 작동했기 때문에 전혀 도움이되지 못했습니다.

나는 또한 web.config 파일을 풀 었으며 양쪽의 web.configs는 동일합니다.

이 문제는 구성 문제와 관련이 있지만 그 내용이 확실하지 않습니다.

어쩌면 뭔가 내가 asp.net mvc 5와 함께해야 할 것입니다 창문이 하늘색과 함께 작동하도록? .net 프레임 워크가 azure에서 .net 4.5로 올바르게 설정되어있는 것 같습니다. 나는 Azure가 web.config에 제공된 데이터베이스를 사용해야한다는 사실을 모른다는 사실과 관련이 있다고 생각합니다.

<add name="DefaultConnection" connectionString="Data Source=####.database.windows.net,1433;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
<add name="DefaultConnectionDeploy" connectionString="Data Source=####.database.windows.net;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
<add name="DefaultConnection_DatabasePublish" connectionString="Data Source=####.database.windows.net,1433;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
+0

작동하지 않는 부분에 대한 세부 정보를 제공해 줄 수 있습니까? "일하지 않는다"는 말만으로는 충분한 정보가 아닙니다. – Igorek

+0

사과드립니다. 데이터베이스 히트를 만드는 페이지에 액세스하려고 할 때마다 (즉, 로그인하거나 기본 뷰 (스캐 폴드 아웃 뷰에서)를보고), 500 오류가 발생합니다. 나는 사용자 정의 오류를 켜려고했지만 500 오류는 모두 얻을 수 있습니다. 내 로컬 컴퓨터에서 디버깅을 시도했으나 사이트를 로컬에서 실행하고 하늘색 데이터베이스에 연결할 때 모든 것이 제대로 작동했기 때문에 전혀 도움이되지 못했습니다. – jyanks

+0

또한 Azure 웹 사이트 또는 클라우드 서비스의 웹 역할에서 실행중인 경우 데이터베이스 유형 (Azure SQL 데이터베이스와 MySQL 등)을 포함하십시오. – MikeWo

답변

0

Andrew-counts의 제안에 따라 Azure web.config 파일에서 "Replace web.config from server"옵션을 사용하여 내 EF 마이그레이션을 체크 아웃하여 체크 아웃했습니다. 서버를 사용하고 있습니다. 사용자 지정 오류를 사용할 수 있습니다. dbo.AspNetRoles 테이블이 이미 있음을 알리는 오류로 인해 페이지를로드하지 못했습니다.

마치 EF를 실행하는 것처럼 보입니다 (테이블을 이미 설치했기 때문에 아무런 해를 입지 않아도 됨) Visual Studio의 패키지 콘솔에서 다음 데이터베이스를 실행하기로 결정했습니다. 서버에 무엇인가를 배치하기 전에 Update-Database 스크립트. 내가 그랬을 때 t, dbo .__ MigrationHistory 테이블의 레코드를 올바르게 추가했습니다. 그런 다음 필자의 변경 사항을 확인하여 필자의 솔루션에 연결된 visualstudio.com 빌드가 빌드되어 Azure에 배포되도록했습니다. 문제는 지속되었지만, 내가 깨달은 것은 내가 사용하고 있던 자동 빌드 + 배포를 비활성화하고 대신 오른쪽 클릭 + 게시를 사용하는 것입니다. 왜냐하면 Visual Studio 빌드에서 수행하는 것이 하늘색 데이터베이스에 제대로 연결되지 않았기 때문입니다. 그것은 web.config를 변환하지 않았습니다.) Visual Studio 내에서 게시를 사용했을 때이 사이트는 매력처럼 작동했습니다.

도움 주셔서 감사합니다.

0

윈도우 Azure는 연결 문자열을 관리하기 위해 변환을 사용한다 : 여기

은 Web.config의 연결 문자열입니다. 연결 문자열은 런타임에 병합되며 웹 사이트 관리 페이지의 구성 탭에서 제어 할 수 있습니다. Azure 데이터베이스를 링크 된 자원으로 설정할 때마다 웹 서버와의 연결을 허용하는 방화벽 규칙을 사용하여 Azure 데이터베이스 서버를 자동으로 구성하고 연결 문자열을 추가합니다. 이 연결 문자열을 사용하여 개발시 사용한 문자열과 동일한 이름을 지정하면 배포 전에 코드를 수정할 필요가 없습니다. Azure 데이터베이스를 링크 된 리소스로 설정하지 않은 경우 Azure 웹 사이트의 확장성에 적합하지 않은 수동으로 방화벽 규칙을 수정해야하므로 권장하지 않습니다.

+0

방금 ​​웹 사이트에서 웹 구성을 연결했습니다. 정상적인 web.config는 Visual Studio에서 만든 mdf 파일을 찾습니다. 하늘색 사이트의 연결 문자열이 유효하거나 올바르지 않으므로 문제가되지 않습니다. – jyanks

+0

MVC 5/EF 6 RC/Microsoft.AspNet.Identity RC를 사용하여 발생하는 문제가 있는지 알고 있습니까? – jyanks

+1

귀하의 사이트에서 EF Migrations을 사용하고 있습니까? 모든 테이블이 실제로 서버 데이터베이스에 있습니까? – Claies