Ошибка сервера SQL, вызванная веб-частью - PullRequest
1 голос
/ 09 ноября 2011

Я использую веб-части для создания страницы панели инструментов.Для этого я динамически загружаю веб-части.

strZoneNumber = "zone" + intCnt.ToString();
UserControl UC = (UserControl)LoadControl(row["c_widget_path"].ToString());//Loads the usercontrol
UC.ID = row["c_widget_webid"].ToString();
UC.Attributes.Add("Title", row["c_widget_webid"].ToString());
//UC.Attributes.Add("title" , "Test");
GenericWebPart ucwebPart = wpmDashBoardManager.CreateWebPart(UC);//creates a webpart
wpmDashBoardManager.AddWebPart(ucwebPart, wpmDashBoardManager.Zones[strZoneNumber], ZoneIndex);//adds it to a zone
wpmDashBoardManager.Zones[strZoneNumber].Visible = true;

Мой режим персонализации webpartmanager установлен в значение «true»

При запуске этой страницы на сервере выдается следующая ошибка:

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

Ошибка автоматического создания файла базы данных SQLExpress: строка подключения указывает локальный экземпляр Sql Server Express с использованием расположения базы данных в каталоге приложений App_Data.Поставщик попытался автоматически создать базу данных служб приложений, поскольку поставщик определил, что база данных не существует.Следующие требования к конфигурации необходимы для успешной проверки существования базы данных служб приложений и автоматического создания базы данных служб приложений:

Если каталог приложений App_Data еще не существует, учетная запись веб-сервера должна прочитатьи доступ для записи в каталог приложений.Это необходимо, поскольку учетная запись веб-сервера автоматически создает каталог App_Data, если он еще не существует.

Если каталог приложений App_Data уже существует, учетной записи веб-сервера требуется только доступ на чтение и запись в каталог приложений App_Data.,Это необходимо, поскольку учетная запись веб-сервера будет пытаться проверить, что база данных Sql Server Express уже существует в каталоге приложений App_Data.Отмена доступа для чтения в каталоге App_Data из учетной записи веб-сервера не позволит провайдеру правильно определить, существует ли база данных Sql Server Express.Это приведет к ошибке, когда провайдер попытается создать дубликат уже существующей базы данных.Доступ на запись необходим, поскольку при создании новой базы данных используются учетные данные учетных записей веб-сервера.

На компьютере должен быть установлен Sql Server Express.Идентификатор процесса для учетной записи веб-сервера должен иметь локальный профиль пользователя.См. Документ readme для получения подробной информации о том, как создать локальный профиль пользователя для учетных записей компьютеров и доменов. **

Есть какие-либо идеи относительно того, что может быть причиной, и решения?Помощь будет принята с благодарностью:):)

1 Ответ

3 голосов
/ 18 января 2012

Многие функции ASP.NET зависят от встроенных служб приложений, таких как членство, роли, профили и персонализация.Например, служба персонализации ASP.NET использует поставщика персонализации для сохранения персонализированных пользовательских настроек на веб-страницах.По умолчанию веб-части пытаются сохранить персонализации в базе данных SQL Express.

Это решение было полезным для меня.

В разделе connectionStrings вашего файла web.config удалите подключение LocalSqlServer и добавьте его снова с вашимсобственные предпочтения:

<connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer" connectionString="yourConnectionString" providerName="System.Data.SqlClient"/>
</connectionStrings>

Тогда, если у вас будет ошибка 'Не удалось найти хранимую процедуру' dbo.aspnet_CheckSchemaVersion ', вы должны создать новую базу данных, которую вы будете использовать для персонализации.Итак, просто изучите C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe и пройдите все шаги мастера.

Надеюсь, это поможет.

...