Настройка
MVC 3 EF 4.1 Code First - машина для Windows 7 Pro 64 Dev, отдельный Win 7 Pro для хоста.
Я начал с SQLCE4.0базы данных, и все работало нормально (инициализатор базы данных создал таблицы, заполнил и т. д.).
После того, как я все заработал, как я хотел, я написал сценарий своей базы данных SqlCe, создал реальную базу данных SQL 2008, открылправильные порты и разрешенные TCP-соединения.
Проблема ЕСЛИ я изменяю строку подключения, указав имя моего сервера интрасети \ имя экземпляра, с пользователем, которого я специально создал для этого приложения, оно отлично работает на моем компьютере разработчика.
ЕСЛИ я публикую приложение на сервере (веб-сервер и сервер sql одинаковы), и я пытаюсь войти на веб-сайт (он же доступ к БД), затем я получаю:
Отказано в разрешении CREATE DATABASE в master базы данных'.
Я прокомментировал настройку DBInitializer, поэтому ничего не должно быть создано при попадании в БД.Таблицы уже есть.
Если я сделаю Database.SetInitializer (null);затем я получаю другую ошибку при входе в систему:
Я точно не помню, но это было что-то, что влияло на Не удалось войти в систему для IIS APPPOOL \ ApplicationPoolIdentity
Таким образом, я изменил Identity на NETWORK SERVICE и даже попытался LOCAL SERVICE, и оба выдавали одну и ту же ошибку при входе в систему.
Я попытался следовать этому сообщению, в котором говорится добавить пользователя SQL с именем 'IIS APPPOOL \ MyApplicationName '.SQL Не позволю мне сделать это, поскольку в нем есть недопустимые символы ... пойди разберись.
Почему он отлично работает по сети, получая доступ к БД с моего компьютера разработчика, но когда я публикую на ТО ЖЕ машинугде размещаются sql и сайт, я получаю отказ в разрешении или ошибки входа в систему? Я искал сеть и пробовал разные вещи.
РЕДАКТИРОВАТЬ: Вот мои строки подключения:
<add name="AntripContext" connectionString="Data Source=|DataDirectory|AntripWeb.sdf" providerName="System.Data.SqlServerCe.4.0" />
<!--<add name="AntripSQL" connectionString="Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;" providerName="System.Data.SqlClient" />-->
<add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="Data Source=|DataDirectory|\AntripWeb.sdf"" providerName="System.Data.EntityClient" />
<!--<add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;"" providerName="System.Data.EntityClient" />-->
Примечание. Закомментированные строки подключения - это те, которые используют базу данных sql 2008 (которая нарушает мое опубликованное приложение).