загрузить ASPNETDB.mdf на виртуальный хостинг? - PullRequest
1 голос
/ 15 декабря 2010

Я занимаюсь разработкой приложения asp.net mvc2 и использую членство в asp.net, которое использует базу данных ASPNETDB.mdf.У меня также есть собственная база данных, и теперь мне интересно, как загрузить эти две базы данных на сервер?Должен ли я загрузить их в виде файла .mdf или использовать сервер SQL?Я предпочитаю использовать SQL-сервер, и если кто-то знает кратчайший способ конвертировать и загружать эти 2 базы данных, это мне очень поможет.

Ответы [ 3 ]

6 голосов
/ 15 декабря 2010

Забавно, я только что закончил делать то же самое. Основные шаги следующие:

  1. В Visual Studio загрузите файл .mdf и выберите «Опубликовать в провайдере», чтобы создать файл .sql.
  2. Откройте SQL Management Studio, откройте соединение с вашей базой данных и загрузите файл sql. Добавьте "использовать ваше имя_базы"; сверху, чтобы он вывел таблицы в вашу базу данных, а затем запустил его.
  3. Теперь у вас должна быть полная структура таблицы. Осталось изменить web.config для чтения новых таблиц:

Первый провайдер членства:

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a "
         connectionStringName="ConnectionStringLoginInfo"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"
         requiresUniqueEmail="false"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="5"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         passwordStrengthRegularExpression=""
         applicationName="/"
            />
  </providers>
</membership>

Теперь роль поставщика:

<roleManager enabled="true">
  <providers>
    <clear/>
    <add name="AspNetSqlRoleProvider"
         type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0,  Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a "
         connectionStringName="ConnectionStringLoginInfo"
         applicationName="/"
            />
  </providers>
</roleManager>

И, наконец, поставщик WebPart, если вы его используете:

<webParts>
  <personalization defaultProvider="SqlDatabaseProviderDRDBLoginInfo">
    <providers>
      <clear/>
      <add connectionStringName="ConnectionStringLoginInfo"

           type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"
           name="SqlDatabaseProviderDRDBLoginInfo"/>
    </providers>
  </personalization>
</webParts>

В этом примере я назвал строку подключения ConnectionStringLoginInfo, но как бы вы ее ни называли, убедитесь, что вы установили ее в части строк подключения. Не буду вставлять это тоже:)

Все это заняло у меня больше, чем я хотел сказать, но когда я увидел, что мое приложение работает безупречно с удаленной папкой App_Data, это был момент!

1 голос
/ 16 декабря 2010

В качестве дополнения к ответу Блинди я хотел упомянуть, что другим способом настройки провайдеров является изменение параметров строки соединения по умолчанию ConnectionString, используемой большинством провайдеров, а именно LocalSqlServer.Чтобы сделать это, вы просто переопределяете эту конкретную ConnectionString в вашем файле web.config следующим образом:

<connectionStrings>
    <clear />
    <add name="LocalSqlServer" connectionString="change this to be the details of your host database" providerName="System.Data.SqlClient" />
</connectionStrings>

Кроме того, если вы не хотите очищать весь раздел connectionStrings, вы можете просто удалить конкретную строку подключения, как эта:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="change this to be the details of your host database" providerName="System.Data.SqlClient" />
</connectionStrings>

Это работает, потому что все провайдеры, которые по умолчанию используют Sql Server для своего хранилища данных - например, провайдер членства - по умолчанию используют строку соединения «LocalSqlServer».Таким образом, если вы переопределите его, вам не придется менять каждого провайдера так, чтобы он указывал на другую строку подключения.

Кроме того, из соображений безопасности может потребоваться шифрование раздела connectionString в вашей сети.Конфигурационный файлВ следующих двух статьях приведена дополнительная информация.

Шифрование и дешифрование разделов конфигурации

Практическое руководство. Шифрование разделов конфигурации в ASP.NET 2.0 с использованием RSA

1 голос
/ 15 декабря 2010

Самый простой вариант для размещенного решения (т. Е. Ваш хостинг-план не является виртуальным частным сервером) состоит в том, чтобы сгенерировать сценарии SQL вашей базы данных, экспортировать их в файлы * .sql и затем запустить их в подключении к SQL-серверу.*

Я обычно подключался бы к экземпляру SQL моего веб-хоста с помощью SQL Server Management Studio и либо открывал, либо вставлял в сценарии, созданные моей локальной копией.

В зависимости от того, предоставляет ли ваш веб-хостинг службуВы также можете использовать опцию «Опубликовать в провайдере ...» в Visual Studio.

...