1

我的 ASP.NET 站点位于 Windows 共享主机上。我需要在我的站点上的 SQL Server 中保留 SessionState,标准方法是使用ASPStateDB。但是在 Windows 共享主机上无法访问该数据库,并且支持人员说不幸的是他们无法为我提供对该数据库的访问权限。

是否可以在站点使用的数据库中使用 SessionState,或者我可以在托管服务器上创建和使用任何不同的数据库来存储 SessionSate?如何运行脚本来创建所有必要的服务器对象等?

谢谢!

4

1 回答 1

2

您可以使用“分区解析器”帮助程序类指定自定义数据库。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为安装自定义数据库。

于 2011-07-27T18:58:32.070 回答