使用VS2010进行数据库部署的问题(打包/发布SQL选项卡)

时间:2010-06-09 15:59:00

标签: visual-studio-2010 msdeploy database-deployment

背景
我在Visual Studio 2010中使用部署工具 我右键单击了我的项目并选择了包/发布设置。将我的所有设置都放在那里......

然后我使用“web deploy”将文件传输到运行远程代理服务的远程服务器,这很正常。我在Web.Release.config上进行的转换可以完成它们的操作,服务器可以访问我手动创建的数据库。

问题:
我的下一步是让数据库部署也能正常工作。 我进入了Package / Publish SQL选项卡并输入了目标数据库的Connection字符串。

(Data Source=MyDBServer;Initial Catalog=Database2;User ID=User;Password=pass)

此数据库已空,可以接受导入。

我还输入了源数据库的连接字符串。它位于同一台服务器上。

(Data Source=MyDBServer;Initial Catalog=Database;User ID=User;Password=pass)

数据库脚本选项设置为架构和数据(更改此选项没有区别),数据库脚本设置为[自动生成的架构和数据]

当我现在部署它时,我收到错误:

  

错误4 Web部署任务   失败。((09/06/2010 16:41:51)一个错误   在请求发生时发生   在远程计算机上处​​理。)

     

(09/06/2010 16:41:51)错误   在请求发生时发生   在远程计算机上处​​理。该   输入类型'未知'不是预期的   此时。序列化流   可能已被破坏。

其他信息:
我可以成功创建一个没有问题的包。我查看了zip中的内容,可以看到SQL生成正常(因此连接到数据库没有问题)。然后,我可以复制此SQL并将其作为新数据库的新查询运行,并且可以很好地创建表和数据。

我似乎无法解决出错的地方,我用Google搜索错误,并且整个互联网上都没有条目。有人有什么想法吗?

附录:
为了进一步了解可能发生的事情,我将包发送到服务器并使用IIS导入它。它告诉我,我需要SQL Server管理对象。所以我安装了它。 接下来尝试它告诉我我的用户没有创建数据库的权限,我认为这一定是问题。 :授予访问权限 - 重新运行。通过! 所以我删除了所有的表,然后回到VS2010点击发布,我得到了同样的错误。 :(

1 个答案:

答案 0 :(得分:3)

对它进行排序!

谢天谢地,当我回到hanselman的视频时,我完全没有想法。他提到Web部署代理可以拥有权限。我进去看看,其中有一个标签名为log on。

我输入了具有相当级别访问权限的帐户的detials并点击了确定。

然后我按要求重新启动服务以启用更改。

然后我回到VS 2010并点击了Publish Web。

音乐到我的眼睛,我看到“发布成功”的字样,我检查数据库,表格在那里。优良!

我觉得我害怕办公室有点过于兴奋,如果你遇到这个问题并且这个解决方案为你解决了这个问题,那就试着忍住这句话“是的!是的,进去吧!”一边疯狂地笑,否则人们会认为你和我一样奇怪。