2012-06-05 4 views
1

я не парень, SQL Server, но я работаю над приложением клиента и хотите подключиться к базе данных через EF Code FirstОсновной поставщик не смог открыть, Логин не удалось для пользователя IIS AppPool

сообщение об исключении что у меня есть

основной поставщик не удалось открыть

сведения об исключении

Невозможно открыть базу данных [DatabaseName], запрошенную при входе в систему. Войти не удалось

Войти потерпело неудачу для потребителя «IIS AppPool \ ASP.NET v4.0"

Мой веб-конфигурации

<add name="TraininGoDB" 
    providerName="System.Data.SqlClient" 
    connectionString="Server=LOCALPCNAME\SQLEXPRESS;Database=[DATABASENAME];Integrated Security=True;"/> 

Контекст и объекты EF определяются в отдельный проект с конфигурацией приложения из следующих

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

Я использую SQL Server Express 2008

не знают проблему из configration базы данных или с помощью веб-конфигурации

ответ

1

Пользователь, под которым пул веб-приложений (связанный с вашего веб-приложения) работает Безразлично У вас есть разрешения на доступ к вашей базе данных. Вы должны предоставить ему разрешения или запустить под другим пользователем, у которого есть разрешения. Итак, чтобы суммировать: проверьте, под каким пользователем пул приложений запущен, а затем проверьте, что у этого пользователя есть доступ к вашей базе данных.

0

Если все ваши файлы Web.config верны, SQLSERVER имеет соответствующие разрешения и т. Д., Есть еще одна вещь, которую вы можете проверить. У меня когда-то была эта проблема, когда клиент настраивал проект таким образом, чтобы Entity Framework автоматически не удаляла базы данных (если, например, изменились модели), но я все еще тестировал проект на localhost. Поэтому мне нужно было создать новую базу данных, но я забыл исправить мои файлы контекста. Например, моя проблема была:

public MasterContext(string nameOrConnectionString) : base(nameOrConnectionString) 
    { 
     Database.SetInitializer<MasterContext>(null); 
    } 

, когда это должно было быть (для целей тестирования):

public MasterContext(string nameOrConnectionString) : base(nameOrConnectionString) 
    { 
     Database.SetInitializer<MasterContext>(new DropCreateDatabaseIfModelChanges<MasterContext>()); 

    } 

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

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