4im*_*ble 6 visual-studio-2010 database-deployment msdeploy
背景:
我正在使用Visual Studio 2010中的部署工具.
我右键单击了我的项目并选择了"打包/发布"设置.把我所有的设置放在那里......
然后我使用"web deploy"将文件传输到运行远程代理服务的远程服务器,这很正常.我在我的Web.Release.config上做的转换做了他们的事情,服务器可以访问我手动创建的数据库.
问题:
我的下一步是让数据库部署也能正常工作.我进入了Package/Publish SQL选项卡并输入了目标数据库的Connection字符串.
(Data Source=MyDBServer;Initial Catalog=Database2;User ID=User;Password=pass)
Run Code Online (Sandbox Code Playgroud)
此数据库为空,准备接受导入.
我还输入了源数据库的连接字符串.它位于同一台服务器上.
(Data Source=MyDBServer;Initial Catalog=Database;User ID=User;Password=pass)
Run Code Online (Sandbox Code Playgroud)
Database Scripting选项设置为Schema和Data(更改此选项没有区别),数据库脚本设置为[Auto Generated Schema and Data]
当我现在部署它时,我收到错误:
错误4 Web部署任务失败.((09/06/2010 16:41:51)在远程计算机上处理请求时发生错误.)
(09/06/2010 16:41:51)在远程计算机上处理请求时发生错误.目前不期望输入类型"未知".序列化流可能已损坏.
附加信息:
我可以成功创建一个没有问题的包.我查看了zip中的内容,可以看到SQL生成正常(因此连接数据库没有问题).然后,我可以复制此SQL并将其作为新数据库的新查询运行,并且可以很好地创建表和数据.
我似乎无法找出出错的地方,我用Google搜索错误,并且整个互联网上都没有条目.有人有主意吗?
附录:
为了进一步了解可能发生的情况,我将包发送到服务器并使用IIS导入它.它告诉我,我需要SQL Server管理对象.所以我安装了它.接下来尝试它告诉我我的用户没有创建数据库的权限,我认为这一定是问题.:授予访问权限 - 重新运行.通过!所以我删除了所有的表,然后回到VS2010点击发布,我得到了同样的错误.:(
排序了!
谢天谢地,当我回到汉塞尔曼的视频时,我完全没有了想法。他提到Web部署代理可以有权限。我进去一看,它的属性中有一个名为“登录”的选项卡。
我输入了具有适当访问级别的帐户的详细信息,然后单击“确定”。
然后,我按照要求重新启动服务以启用更改。
然后我返回 VS 2010 并单击“Publish Web”。
我眼前一亮,我看到“发布成功”字样,我检查了数据库,表格就在那里。出色的!
我想我有点过于兴奋,吓到了办公室,如果你遇到这个问题并且这个解决方案为你解决了它,请尝试抑制住喊出“是的!,是的,进来!”的诱惑。一边疯狂地笑,不然人们会觉得你像我一样很奇怪。