Должен ли ASPNETDB оставаться в папке приложения по умолчанию, созданной Visual Studio при развертывании на веб-сервере? У меня есть еще одна база данных, находящаяся в папке с данными mssql, если она также будет размещена в том же каталоге? Я не понимаю, имеет ли это значение так или иначе.asp.net DB: как обращаться при публикации на веб-сервере?
ответ
Это зависит от того, в какой среде вы развертываете свое приложение. В частности, какие серверы баз данных доступны вам или что вы можете развернуть.
Если вы имеете или можете установить SQL Server и имеете полные права администрирования по экземпляру, самым простым вариантом является присоединение обеих баз данных к этому экземпляру и правильное изменение строк подключения. В этом случае оба файла должны находиться вне wwwroot в определенном каталоге SQL Server.
Я предполагаю, что это доступ к базе данных в вашей папке данных mssql. Строка подключения НЕ ДОЛЖНА содержать «AttachDbFilename».
Другой вариант включает SQL Server Express Edition и пользовательские экземпляры. Пользовательские экземпляры создаются по требованию для размещения базы данных, когда пользователь приложения не имеет права прикреплять его к созданному экземпляру установки. Экземпляры пользователей выполняются в контексте пользователя приложения, ASPNET в вашем случае и не имеют расширенных функций безопасности.
Visual Studio использует эту же настройку. Вероятно, ASPNETDB использует этот метод. Строка подключения ДОЛЖНА содержать «AttachDbFilename».
База данных, созданная в экземпляре пользователя, может быть перенесена в экземпляр установки. Однако база данных из экземпляра установки не может быть присоединена к экземпляру пользователя, поскольку информация о безопасности недоступна.
Для получения дополнительной информации см. Configuring ASP.NET 2.0 Application Services to use SQL Server 2000 or SQL Server 2005 и SQL Server 2005 Express Edition User Instances.