Sql server 1和1托管和会话数据库

Sql server 1和1托管和会话数据库,sql-server,session-state,shared-hosting,Sql Server,Session State,Shared Hosting,我在1和1()服务器上托管了我的ASP.NET 4.5应用程序(共享托管),并使用SQL server会话状态作为所涉及的loadbalancer/webFarm。但是,当我试图在他们的数据库服务器上安装会话数据库时,我遇到了一些问题。由于是共享主机,我对web服务器的访问权限有限 我尝试在1和1 db服务器上执行InstallSqlStateTemplate.sql/InstallSqlState.sql(从我的计算机复制),但失败 我没有通过脚本创建新数据库的权限,因此我尝试使用Instal

我在1和1()服务器上托管了我的ASP.NET 4.5应用程序(共享托管),并使用SQL server会话状态作为所涉及的loadbalancer/webFarm。但是,当我试图在他们的数据库服务器上安装会话数据库时,我遇到了一些问题。由于是共享主机,我对web服务器的访问权限有限

我尝试在1和1 db服务器上执行InstallSqlStateTemplate.sql/InstallSqlState.sql(从我的计算机复制),但失败

我没有通过脚本创建新数据库的权限,因此我尝试使用InstallSqlStateTemplate.sql修改现有数据库-它引发以下错误:

对象“sp_delete_job”的执行权限被拒绝, 数据库“msdb”,架构“dbo”


有人有类似的经历吗

对于共享主机来说,您没有足够的权限通过SQL创建数据库是很常见的

通常的解决方案(您已经尝试过)是在宿主提供给您的管理屏幕中创建数据库,然后执行SQL脚本的其余部分,当然在开始时省略
create database
部分

问题是脚本除了创建数据库之外还做了其他的事情,而您没有足够的权限来处理这些额外的事情。 错误消息表示您没有足够的权限执行
msdb
数据库中的存储过程
sp\u delete\u job

因此,显然ASP.NET的SQL Server会话状态包含一些SQL Server代理作业,可能是为了定期维护数据库或类似的事情(我熟悉SQL Server,但不太熟悉ASP.NET会话状态)。
如果作业已经存在,脚本可能会首先尝试删除它们(然后重新创建它们),因此使用
sp_delete_job

可能的解决办法: 如果能够通过提供商的管理屏幕创建SQL Server代理作业,则需要执行以下操作:

  • 仅执行SQL脚本中在实际会话数据库中创建表和内容的部分
  • 不要执行脚本中创建SQL Server代理作业的部分
  • 相反,请通过提供商的管理屏幕手动创建SQL Server代理作业
(如果您无法确定SQL脚本的哪一部分创建了数据库,哪一部分创建了作业,那么您需要将脚本发布在此处,或者给我一个指向它的链接,如果它可以在线找到的话)


如果您无法通过管理屏幕创建SQL Server代理作业(或者如果您使用的是SQL Server Express,!),那么您就倒霉了

也许你可以不做这些工作,这取决于他们在做什么:

如果他们只对数据库进行维护,也许您可以自己定期执行必要的SQL(作业应该执行)。

在共享主机中,您需要向您的主机询问权限。从上面的错误消息中可以清楚地看出,权限不足以运行脚本。所以,我建议你联系你的主机提供商,谢谢你的回答。是的,这是我们可以做的所有与共享主机。但幸运的是,1&1有一个选项可以上传备份并还原到现有的数据库-这样我就可以在本地数据库上运行脚本,使用1&1备份并还原到数据库-这工作非常完美,并且具有所有必需的表、SP和作业。