Я начал создавать веб-приложение ASP net MVC 2.0 с использованием SQL Express 2008 R2.Я размещаю приложение на somee.com.
Я решил использовать Entity Framework 4 с реализацией базы данных в коде, чтобы можно было легко изменить дизайн.Локально работает, но когда я развертываю его на хост-провайдере, возникает много проблем.
Прежде всего, мне не удается повторно инициализировать базу данных, если модель изменилась, так как база данных наиболеесозданный заранее на сайте хостинга.Следовательно, у меня нет прав для этого.
Итак, я решил загрузить файл .mdf на моем локальном сервере SQLEXPRESS и отправить его на хост-сервер, но затем по какой-то причине яне могу подключиться к базе данных, когда я регистрирую нового пользователя с Членством.Вот где возникает исключение:
_provider.CreateUser(userName, password, email, null, null, true, null, out status);
Ошибка:
Невозможно открыть базу данных "Люди", запрошенную при входе в систему.Ошибка входаНе удалось войти в систему для пользователя 'dalya'.
Теперь у меня возникает ощущение, что при получении файла mdf в папке DATA моего локального сервера SQL EXPRESS разрешения могут отличаться от разрешений, предоставленных большинством моих поставщиковкогда он прикрепил файл.Тем не менее, вот мой файл Web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<connectionStrings>
<!--
<add name="People" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=People;"
providerName="System.Data.SqlClient" />
-->
<add name="People"
connectionString="Data source=PraxtPeople.mssql.somee.com;
packet size=4096;
user id=dalya;
pwd=********;
persist security info=False;
initial catalog=People;
"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<appSettings>
<add key="DefaultConnectionString" value="People"/>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="People"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="People" applicationName="/" />
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="People" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Может кто-нибудь подсказать мне, как решить эту проблему?Или кто-нибудь знает хорошего хост-провайдера, который разрешает реализацию платформы с кодом на основе сущности 4.0, где базы данных, использующие членство, могут быть без проблем воссозданы во время выполнения в случае изменения дизайна?