2011-02-18 2 views
2

SQL Azure에서 호스팅되는 나머지 데이터베이스와 함께 작동하도록 ASP.net 멤버 ship proveider를 얻으려고했습니다. 데이터베이스에 대해 적절한 SQL Azure 특정 스크립트를 실행하여 설정합니다. 스크립트는 여기 Microsoft에서 사용할 수 있습니다 http://archive.msdn.microsoft.com/KB2006191SQL Azure에 Asp.Net Memebership 데이터베이스를 배포하려고 시도했습니다.

그러나, 나는 비주얼 스튜디오 10를 사용하여 디버그 모드에서 내 사이트를 실행할 때마다, 나는 다음과 같은 오류가 발생합니다 :

An error occurred during the execution of the SQL file 'InstallCommon.sql'. The SQL error number is 5123 and the SqlException message is: CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file 'C:\USERS\ROBERTO\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\FLYINGSHAKESTORE\MVCMUSICSTORE\APP_DATA\ASPNETDB_TMP.MDF'. CREATE DATABASE failed. Some file names listed could not be created. Check related errors. Creating the ASPNETDB_74b63e50f61642dc8316048e24c7e499 database...

데이터베이스에 대한 모든 다른 접근이 완벽하게 작동합니다. 그래서 제 연결 문자열이 아닙니다.

구성원 공급자가 처음 호출 될 때 ASP.Net은 SQLAzure에 새 Memberhship 데이터베이스를 연결하려고 시도합니다 (어쨌든 사용할 수 없음). 이유는 존재하지 않는다고 생각하기 때문입니다. 나는이 행동을 어떻게 끄는 지 전혀 모른다.

누구든지 내가 할 수있는 것을 알고 있습니까?

감사합니다.

로베르토

답변

2

고마워. 이 완벽하게 작동하는 것 같다

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlRoleProvider" connectionStringName="..." type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral...."/> 
     </providers> 
    </roleManager> 
    <membership> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider.... connectionStringName=""..../> 
     </providers> 
    </membership> 
    <profile> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlProfileProvider" connectionStringName="" type="System.Web.Profile.SqlProfileProvider..../> 
     </providers> 
    </profile> 

:

몇 가지 실험 후이 내가 생각 해낸 것입니다. 그런 다음 올바른 연결 문자열을 사용하여 공급자를 다시 추가합니다.

이것은 데이터베이스에 대해 올바른 SQL 스크립트를 실행 한 사용자에 따라 다릅니다. 여기서 얻을 수 있습니다 : http://support.microsoft.com/kb/2006191

+0

모든 제공자에게 은 매우 중요합니다. 그렇지 않으면 시스템에서 어떤 제공자를 사용하는지 혼란스러워서 인증 오류가 발생합니다 –

3
실제로 여전히 로컬 파일 대신 SQL 애저 인스턴스의 App_Data/ASPNETDB_TMP.MDF를 참조하는 것 같습니다

가 - 그래서 나는 당신의 주요 데이터에 대한 ConnectionString을 올바른 동안, 당신은 또한이 의심 ConnectionString은 로컬 데이터베이스에 대해서도 거짓말을하고 있습니까? web.config 내의 회원 공급자를 확인하십시오.

2

기본적으로 asp.net mebership 시스템은 LocalSqlServer이라는 연결 고리를 사용한다고 생각합니다. 귀하의 web.config에 그것을 설정하고 당신은 잘해야합니다.

<configuration> 
    <connectionStrings> 
     <add name="LocalSqlServer" 
     connectionString="Connectionstring..." 
     providerName="Provider..." /> 
    </connectionStrings> 
</configuration> 
관련 문제