时间:2010-07-26 10:35:25

标签: .net iis

2 个答案:

答案 0 :(得分:0)

我采用的方法是创建一个脚本,从git中提取最新的部署版本,停止IIS,复制新版本,启动IIS。它非常粗糙,但如果您的git存储库中唯一的东西是最新的可部署版本,它将起作用。

我甚至在Visual Studio中设置了发布按钮以复制到我的本地git部署仓库。然后,我只是从我的开发机器上推出,然后在我的目标Web服务器上运行我的部署脚本,这将提取最新版本。

SQL更新脚本部分问题很有趣。听起来你需要类似于Rails中的db迁移的东西。这不是我必须处理的事情,但我会在此指出:http://www.infoq.com/news/2009/01/migrations_dotnet

答案 1 :(得分:0)

我将此视为执行某些步骤的应用程序子系统:

  1. 检查应用程序最新版本的例程
  2. Perfom下载最新的包文件
  3. 打开包装并复制新文件
  4. 调用sql命令行来通知所有sql语句
  5. 最后,将所有dll文件复制到bin文件夹
  6. 还有其他方法可以解决这个问题,但这种模式可以安全无虞。

    要从ASP.NET中更新bin文件夹,您的IIS需要允许访问您的bin文件夹。因此,您可以考虑通过创建自定义权限集来调整您的环境安全性:

    <IPermission   
    class="FileIOPermission"   
    version="1"   
    Read="$AppDir$"   
    Write="$AppDir$"   
    Append="$AppDir$"   
    PathDiscovery="$AppDir$" /> 
    

    这样您就可以将工作文件复制到此特殊文件夹中。

    参考

    1. http://msdn.microsoft.com/en-us/library/ff649312.aspx
    2. http://msdn.microsoft.com/en-us/library/ms998341.aspx
    3. ps。:如果您发现bin文件夹有问题。将新版本的文件复制到GAC并将程序集引用管理为web.config版本。听起来也不错。