0

Я только что загрузил веб-приложение MVC3 ASP.net на свой сервер 2008 R2 IIS 7.5 Express webserver.Веб-приложение MVC3/учебное пособие не будет «регистрироваться» с использованием ASPNETDB.mdf на веб-сервере IIS7

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

"К сожалению, произошла ошибка время ваш запрос обрабатывается. «

Если я просматриваю веб-приложение на моем веб-сервере (внутри IIS7.5) и попробуйте ссылку для входа в систему я получаю следующее сообщение об ошибке: ASP

» сеть связанных или экземпляр -специфическая ошибка при установлении соединения к SQL Server. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местонахождения сервера/экземпляра) «

« Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. "

Сведения об исключении: System.Data.SqlClient.SqlException: при установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (Поставщик: SQL Network Interfaces, ошибка: 26 - Ошибка Расположение сервера/экземпляра указано) «

» Источник ошибки: генерировали Необработанное исключение при выполнении текущего веб-запроса. Информация о происхождении и месте возникновения исключения могут быть определены с помощью трассировки стека исключений ниже «

ли кто-то ум помогает мне снимать проблемы, пожалуйста,

Я две базы данных, сконфигурированный в моем Web.Config:.?

<connectionStrings> 
    <add name="DatabaseDBContext" connectionString="data source=|DataDirectory|Content_Database.sdf" providerName="System.Data.SqlServerCe.4.0"/> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

SQL-Compact (Content_Database.sdf) база данных работает нормально. Я только получаю ошибку при попытке доступа к базе данных ASPNETDB.mdf.

база ASPNETDB.mdf является практ в то же время, в том же состоянии, что и вы получаете при загрузке шаблона/учебника Microsoft MVC3 Razor из Visual Web Developer Express 2010.

Я попытался установить SQL Express 2008 на своем веб-сервере на всякий случай, когда это было проблемой, не имело значения.

Все веб-приложение прекрасно работает на моем сервере разработки Visual Web Developer 2010 Express (я могу создавать и успешно запускать их и записывать в них). Он просто терпит неудачу, как только он загружается на веб-сервер.

Помощь оценили - большое спасибо :-)

Full 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="DatabaseDBContext" connectionString="data source=|DataDirectory|\Content_Database.sdf" /> 
     <add name="ApplicationServices" connectionString="data source=|DataDirectory|\aspnetdb.sdf" /> 

     <!--<add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" />--> 
    </connectionStrings> 

    <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="~/Admin/LogOn" timeout="2880" /> 
    </authentication> 

    <membership> 
     <providers> 
     <clear/> 
      <add name="SqlCeMembershipProvider" type="Project1.Domain.SqlCeMembershipProvider" connectionStringName="ApplicationServices" applicationName="/" 
     enablePasswordRetrieval="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" writeExceptionsToEventLog="false" /> 
      <!--<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
      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="ApplicationServices" applicationName="/" /> 
     </providers> 
    </profile> 

    <roleManager defaultProvider="SqlCeRoleProvider" 
      enabled="true" 
      cacheRolesInCookie="true" 
      cookieName=".ASPROLES" 
      cookieTimeout="30" 
      cookiePath="/" 
      cookieRequireSSL="false" 
      cookieSlidingExpiration="true" 
      cookieProtection="All"> 
     <providers> 
     <clear/> 
      <add name="SqlCeRoleProvider" type="System.Web.Security.SqlCeRoleProvider" connectionStringName="ApplicationServices" applicationName="/" writeExceptionsToEventLog="true" /> 
     <!--<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />--> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
     </providers> 
    </roleManager> 

    <pages> 
     <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> 
    </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> 
</configuration 

>

ответ

0

Похоже, ваш DatabaseDBContext/SDF, если в Compact базы данных Sql. Этот движок сильно отличается от точки зрения администраторов. В принципе, очень просто настроить и начать работу.

Ваш ApplicationServices/мдф файл не является Compact базы данных, он использует нормальный SQL (экспресс, DEV, рабочая группа, стандарт, предприятия и т.д.) двигатель. Для этого требуется небольшая настройка. Ваша опция data source= настраивает SqlClient для использования определенного механизма, установленного на локальном компьютере, для открытия базы данных (для этого потребуется, чтобы sql был установлен на локальном компьютере как инстанционная установка с именем SqlExpress) и правильно настроен для разрешения соединений (возможно, удаленный). Integrated Security настраивает SqlClient для подключения к серверу в качестве пользователя, сконфигурированного в AppPool, для подключения к базе данных, что требует от пользователя доступа к файлу, в котором хранится база данных, самой базе данных (внутри как безопасность) и все другие требования безопасности SSPI (которые я настоятельно рекомендую вам соблюдать).

Update

У меня есть несколько проектов, работающих исключительно на Compact Framework (потому что для небольших проектов, это гораздо легче поддерживать/Администрирование).

Чтобы использовать SQL Server Compact 4, вам необходимо установить Visual Studio Tools for SQL Server Compact 4. Я использую erikej SQL Compact Providers (членство и роль) для asp.net и не сталкивался с какими-либо проблемами. Хорошая часть о провайдерах заключается в том, что большая часть кода, который вы написали против нынешних поставщиков, не изменится, вы просто замените поставщика и базу данных.

В любом случае, счастливое кодирование!

Update 2

Мой web.config имеет следующие данные:

<connectionStrings> 
<add name="membershipDatabase" 
     connectionString="data source=|DataDirectory|\Membership.sdf" /> 
</connectionStrings> 

<membership defaultProvider="SqlCeMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="SqlCeMembershipProvider" 
     type="Project1.Domain.SqlCeMembershipProvider"   
     connectionStringName="membershipDatabase" 
     applicationName="/" 
     enablePasswordRetrieval="false" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="true" 
     passwordFormat="Hashed" 
     writeExceptionsToEventLog="false" /> 
    </providers> 
</membership> 
<roleManager defaultProvider="SqlCeRoleProvider" 
      enabled="true" 
      cacheRolesInCookie="true" 
      cookieName=".ASPROLES" 
      cookieTimeout="30" 
      cookiePath="/" 
      cookieRequireSSL="false" 
      cookieSlidingExpiration="true" 
      cookieProtection="All"> 
    <providers> 
    <clear /> 
    <add name="SqlCeRoleProvider" 
     type="Project1.Domain.SqlCeRoleProvider" 
     connectionStringName="membershipDatabase" 
     applicationName="/" 
     writeExceptionsToEventLog="true" /> 
    </providers> 
</roleManager> 
+0

Большое спасибо за помощь Эрик. Я действительно запускаю две разные базы данных. При первоначальном запуске учебного пособия шаблон для веб-приложения поставляется с возможностью регистрации пользователей и входа в систему и выхода из него. Это использует базу данных «aspnetdb.mdf» по стандарту. При создании другой базы данных учебник говорил нам, создавая базу данных SQL Compact. – Harry

+0

Кажется, что это работает, и в идеале я хотел бы использовать файлы .sdf через веб-приложение, однако я не знаю, как и где начать изменять функциональность приложений, чтобы использовать SQL compact в качестве управления базой данных создание пользователей и возможность их аутентификации. Я верну свой веб-сервер и проверю правильность установки SQL Express. – Harry

+0

Обновлено с помощью SQL CE Info. –

Смежные вопросы