none
Совсем простой вопрос. RRS feed

  • Вопрос

  • Мне нужен был очень простой сайт. Шаблон подходит как нельзя лучше. Я запустил проект ASP.NET MVC3. Razor. Самое минимальное наполнение и ссылка на скачивание. Локально всё работает. Авторизация, скачивание и т.п. Перенёс на хостинг. авторизация не проходит. У меня как был сайт на Drupal (тоже сам корячился) дак там была база сохраняющая все данные MySql. тут думал тоже будет база, но поискав локально никакой базы нет. Ну думаю может где в текстовом формате зашифрованном хранится. Не стал вникать и перенес через Publish через FTP. Но не работает регистрация и вход на сайт.

    Техподдержка спрашивает:

    Уточните, пожалуйста, данные о пользователях хранятся в БД или локально? Какой механихм авторизации используется?

    Честно говоря я думал что локально что то. А может и база. Подскажите. Всё делал через шаблон. Ничего не менял.

Ответы

  • Если используется стандартный студийный шаблон (Internet Application), то там используется автономная база данных SQL Server Express. Файл этот находится в папке App_Data, причём создается не сразу, а через Web Site Administration Tool (иконка глобуса в Solution Explorer). Вам нужно сделать его бекам через Management Studio, и восстановить на сервере (как один из вариантов) и строку соединения в web.config поменять. Так как автономные базы(.mdf файлы sql express) не работают на продакшн серверах.
    • Помечено в качестве ответа developers_s 9 мая 2012 г. 13:21
    Модератор
  • Если это стандартный шаблон, то база создаётся автоматически  в папке App_Data, файл ASPNETDB.MDF, автономная база SQL Server Express. По умолчанию её не видно в Solution Explorer, чтобы увидеть нажимаете кнопку ShowAllFiles. "Или её нужно создавать самому и писать на C# запросы к обращению к этой базе?" - нет нужды, там многое уже за Вас сделано, правда не всё.
    • Помечено в качестве ответа developers_s 17 мая 2012 г. 6:56
    Модератор

Все ответы

  • Какой шаблон используете, стандартный, что студия создаёт?
    Модератор
  • Если используется стандартный студийный шаблон (Internet Application), то там используется автономная база данных SQL Server Express. Файл этот находится в папке App_Data, причём создается не сразу, а через Web Site Administration Tool (иконка глобуса в Solution Explorer). Вам нужно сделать его бекам через Management Studio, и восстановить на сервере (как один из вариантов) и строку соединения в web.config поменять. Так как автономные базы(.mdf файлы sql express) не работают на продакшн серверах.
    • Помечено в качестве ответа developers_s 9 мая 2012 г. 13:21
    Модератор
  • Написало

    ASP.NET Logo                        Web Site Administration Tool                        How do I Use this Tool  Question Mark Image 
     

                                                                        An error was encountered. Please return to the previous page and try ain.                       

                                                    

    Нажимаю How do I Use this Tool

    Появляется

    Tool Has Timed Out

    As a security measure, the Web Site Administration Tool times out after a period of inactivity.  Changes to machine.config or web.config may also result in the tool needing to be restarted.  To continue configuring your web site, restart the tool.

    Видимо в 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>
      <appSettings>
        <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.Helpers, Version=1.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=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          </assemblies>
        </compilation>
        <authentication mode="Forms">
          <forms loginUrl="~/Account/LogOn" timeout="2880"/>
        </authentication>
        <pages controlRenderingCompatibilityVersion="4.0">
          <namespaces>
            <add namespace="System.Web.Helpers"/>
            <add namespace="System.Web.Mvc"/>
            <add namespace="System.Web.Mvc.Ajax"/>
            <add namespace="System.Web.Mvc.Html"/>
            <add namespace="System.Web.Routing"/>
            <add namespace="System.Web.WebPages"/>
          </namespaces>
        </pages>
        <httpRuntime/>
        <machineKey/>
        <profile defaultProvider="DefaultProfileProvider">
          <providers>
            <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
          </providers>
        </profile>
        <membership defaultProvider="DefaultMembershipProvider">
          <providers>
            <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
          </providers>
        </membership>
        <roleManager defaultProvider="DefaultRoleProvider">
          <providers>
            <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
          </providers>
        </roleManager>
        <sessionState mode="InProc" customProvider="DefaultSessionProvider">
          <providers>
            <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
          </providers>
        </sessionState>
      </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-2.0.0.0" newVersion="3.0.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebIncdProject-20125892551;Integrated Security=true" providerName="System.Data.SqlClient"/>
      </connectionStrings>
    </configuration>

    Это мой Web.Config - только в DefaultConnection наверное что-то надо делать.
  • Судя по всему у Вас проблема с базой данных. Попробуйте использовать стандартный Sql Server Express вместо новой LocalDb.
    Модератор
  • Подскажите по сути ASP NET в VS2010 или 2011

    Вот хочу разобраться. Создаю шаблон нажимаю F5 запускается сайт внизу справа у часов видимо какой то виртуальный IIS запускается. 

    Прохожу регистрацию - всё нормально.

    Закрываю сайт. Снова в VS 2010 смотрю проект. Никакой базы нет.

    Снова запускаю прохожу уже не регистрацию, а авторизацию. Всё проходит. Т.е. где то моё имя сохранилось ведь. Никаких баз нет. В подключениях какое то подключение есть, но открыть и посмотреть не могу.

    Вот вопросы:

    1) При создании проекта шаблонного создаётся ли самой VS база для авторизации и регистрации? Или её нужно создавать самому и писать на C# запросы к обращению к этой базе?

    2) Если базу надо создавать и писать запросы вручную, то что за запросы в шаблоне? Куда они отправляют данные.

  • Если это стандартный шаблон, то база создаётся автоматически  в папке App_Data, файл ASPNETDB.MDF, автономная база SQL Server Express. По умолчанию её не видно в Solution Explorer, чтобы увидеть нажимаете кнопку ShowAllFiles. "Или её нужно создавать самому и писать на C# запросы к обращению к этой базе?" - нет нужды, там многое уже за Вас сделано, правда не всё.
    • Помечено в качестве ответа developers_s 17 мая 2012 г. 6:56
    Модератор
  • Просто в Far Manager посмотрел эту папку никакой базы нет. Загадка какая-то везде говорят она там есть, а по факту её там нет. Попробую проект по новой создать. :) Хотя я ничего не удалял абсолютно. Пробовал смотреть эту папку во время компиляции, во время debug во время выключения. Нет в папке App_Data ничего. Хоть переходи на Drupal опять. :)
  • у меня Windows 8 и VS2011.

    Может в этом проблема в "беттости" этих продуктов.

    Может кому надо будет. База не появляется ни при каких вариантах. Хоть новый проект, хоть изменяю, хоть как.

    Сделал так. В web.config вместо

    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebIncdProject-20125892551;Integrated Security=true" providerName="System.Data.SqlClient"/>

    Сделал

    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-WebIncdProject-20125892551;Integrated Security=true" providerName="System.Data.SqlClient"/>

    Откомпилировал и в папке

    C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

    появилась моя база "aspnet-WebIncdProject-20125892551.mdf"

    Я её переименовал в aspnetdb.mdf

    и закинул в папку App_Data

    и изменил строку подключения в web.config на

    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"/>
     

    Всё, теперь у меня есть база в папке App_Data и к ней есть подключение.

    Теперь попробую сделать ей backup и перенести на хостинг и попробую поменять строку подключения хостинговскую.

    как сделаю напишу :)