2013-12-09 3 views
2

Я смущен строкой соединения в файле проекта Web.config с веб-интерфейсом Entity Framework. Есть много вариантов, которые я пробовал, но никто из них не помогал мне. В настоящее время строка соединенияСтрока соединения между IIS и SQL-сервером

<connectionStrings> 
     <add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

я могу получить доступ к базе данных, которая называется MyProject в SQL Server Management Studio 2012 (даже из отдаленных), используя в качестве имени пользователя John и duck в качестве пароля.

Проект запускается сервером IIS на том же компьютере, что и SQL-сервер, имя экземпляра SQL-сервера: SQLEXPRESS. Моя веб-страница отображается на локальном хосте, но контроллер просто отвечает 500 Interal server error всякий раз, когда запрашиваются данные из базы данных sql. Похоже, что нет никакой связи с базой данных.

Что мне нужно добавить или изменить, чтобы получить соединение между IIS и SQL-сервером или как лучше найти проблему?

+0

Кроме того, попробуйте установить контрольную точку на вашей странице, и увидеть где ошибка на самом деле происходит. Возможно, это не проблема с подключением к БД. –

ответ

2

This учебник по установке SQL Server 2008 для веб-сайта ASP.net на IIS 7.0 приблизил меня к решению.

В принципе, то, что вам нужно сделать, это

  1. Установка сервера SQL.
  2. Разрешить соединения TCP/IP с SQL-сервером.
  3. Прикрепите вашу базу данных.
  4. Создать логин. Я использую проверку подлинности SQL.
  5. Назначьте разрешения пользователя вашей базе данных.
  6. Настройте строку подключения к базе данных.

Изменение имени моей строки подключения помогло мне окончательно установить соединение.

<connectionStrings> 
     <add name="MyProjectContext" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Контекстная модель требует этого названия.

public class MyProjectContext : DbContext 
{ 

    public MyProjectContext() : base("name=MyProjectContext") 
    { 
    } 

    public DbSet<Model1> Model1 { get; set; } 
    public DbSet<Model2> Model2 { get; set; } 
} 
1
<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyProject;User ID=John;Password=duck" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Пожалуйста, попробуйте приведенный выше синтаксис соединения.

+0

Извините, нет разницы – Explicat

2

Используйте Event Viewer, чтобы получить более подробную информацию о том, что такое ошибка 500.

1

В основном просто изменить строку подключения с помощью Integrated Security = False, как:

и он будет работать ...

+0

В основном просто измените строку соединения с помощью Integrated Security = False:

+0

в основном Integrated Security = True означает, что текущие учетные данные учетной записи Windows используются для аутентификации. Поэтому сделайте это False, когда ваше соединение использует проверку подлинности SQL Server вместо Windows –

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