SessionState в собственной базе данных SQL Server на хостинге Windows. - PullRequest
1 голос
/ 27 июля 2011

Мой сайт ASP.NET находится на общем хостинге Windows. Мне нужно сохранить SessionState в SQL Server на моем сайте, и стандартным способом является использование ASPState DB. Но эта БД недоступна на хостинге под управлением Windows, и служба поддержки сказала, что, к сожалению, они не могут предоставить мне доступ к этой БД.

Можно ли использовать SessionState в той БД, которую использует сайт, или я могу создать и использовать любую другую БД на хост-сервере для хранения SessionSate? Как запустить скрипт для создания всех необходимых объектов сервера и т. Д.

Спасибо!

1 Ответ

2 голосов
/ 27 июля 2011

Вы можете указать пользовательскую базу данных, используя вспомогательный класс "resolver для разделов" . Конфигурация в web.config выглядит следующим образом:

<sessionState mode="SQLServer" 
     partitionResolverType="YourNameSpace.PartitionResolver"
     cookieless="false" timeout="480" />

Сам класс выглядит так:

public class PartitionResolver : IPartitionResolver
{
    public void Initialize()
    {
    }

    // The key is a SID (session identifier)
    public String ResolvePartition(
        Object key)
    {
        return "Data Source=myServerAddress;Initial Catalog=myDataBase;" +
               "User Id=myUsername;Password=myPassword;";
    }
}

Чтобы создать необходимые объекты SQL Server, используйте утилиту aspnet_regsql. У него есть опция sstype, которую вы можете установить на c для установки пользовательской базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...