当前位置:编程学习 > C#/ASP.NET >>

服务器上 IIS 实现 VS 的发布功能

求详解,做了个小工具,想实现 在服务器 IIS 上实现 VS 的发布功能, 并能在IIS 创建虚拟目录,用户可以直接访问。
最好可以贴出代码
--------------------编程问答-------------------- 是否可以把需求再说详细一点

是已经做好了一个小工具?

是希望VS可以直接发布程序在IIS上么?做一个安装程序?

还是想做一个小工具,实现制作在IIS上发布的安装程序? --------------------编程问答-------------------- v求详解,做了个小工具,想实现 在服务器 IIS 上实现 VS 的发布功能, 并能在IIS 创建虚拟目录,用户可以直接访问。
最好可以贴出代码 --------------------编程问答-------------------- VS2008下IIS网站的发布

主菜单->生成->发布->目标位置框右边的[...]按钮->本地IIS->默认站点->打开->发布

如果你的IIS不支持ASP.Net,只需要在开始菜单->Visual Studio 2008->命令提示符->执行 aspnet_regiis -i -enable 

直接在普通命令提示符下执行不了的,换台机器需要安装.Net的SDK, 然后还是在开始菜单的SDK里的那个命令提示符-> aspnet_regiis -i -enable,(不过如果先装IIS,再装.Net,IIS自动支持ASP.Net的),至于发布,把网站根目录(默认的Default.aspx所在目录)全部复制到IIS的根目录下,默认是C:\inetpub\wwwroot

例如:
1.
我把D:\Visual Studio 2008\Projects\WebApplication1\WebApplication1下的所有文件复制到C:\inetpub\wwwroot下
2.
IIS启动(开始->运行->iis.msc->本地计算机->网站->默认网站->右键->启动),
3.
打开IE,打开http://localhost/Default.aspx 


--------------------编程问答-------------------- 使用DirectoryService命名空间,可以操作IIS --------------------编程问答--------------------

Using System.DirectoryServices;
private void btnCreateDirectory_Click(object sender, EventArgs e)
{
          string strSchema = “IIsWebVirtualDir“;
          string strRootSubPath = “/W3SVC/1/Root” ; 

           // you can specify any server name , “localhost” is for example
           DirectoryEntry deRoot = 
                        new DirectoryEntry(“IIS://” + “localhost” + strRootSubPath);
         try
        {
                 deRoot.RefreshCache();
                 DirectoryEntry deNewVDir = 
                                    deRoot.Children.Add(“Name of Virtual Directory“, strSchema);

                 deNewVDir.Properties["Path"].Insert(0, “Path for Virtual Directory“);
                 deNewVDir.CommitChanges();
                 deRoot.CommitChanges();

                // Create a Application
                if (strSchema == “IIsWebVirtualDir“)
                           deNewVDir.Invoke(“AppCreate“, true);
                // Save Changes
                           deNewVDir.CommitChanges();
                
                deRoot.CommitChanges();
                deNewVDir.Close();
                deRoot.Close();
                lblResult.Text = “Virtual Directory ” 
                                   + (“Name of Virtual Directory“+ “(” + “Path for Virtual
                                             Directory” + “) has  been created“;
       }
      catch (Exception ex)
     {
                lblResult.Text = ex.Message;
      }
}



参考:
http://chiragrdarji.wordpress.com/2007/06/04/create-virtual-directory-in-iis-using-c/
这里有创建/删除/查看的源代码
http://chiragrdarji.wordpress.com/2007/06/20/createdeleteview-virtual-directory-or-website-in-iis-using-c/ --------------------编程问答-------------------- 顶起这个帖子 --------------------编程问答-------------------- 详细需求: 我有一个 VS 的工程,想做一个工具,工具可以选中这个工程的目录和IIS发布的目录,选好后,直接点击生成按钮,这个工程就自动编译好了,自动发布到IIS上了 --------------------编程问答-------------------- 晕倒,这些东西vs都提供了,你要重复造轮子? --------------------编程问答-------------------- VS2008下IIS网站的发布

主菜单->生成->发布->目标位置框右边的[...]按钮->本地IIS->默认站点->打开->发布

如果你的IIS不支持ASP.Net,只需要在开始菜单->Visual Studio 2008->命令提示符->执行 aspnet_regiis -i -enable  

直接在普通命令提示符下执行不了的,换台机器需要安装.Net的SDK, 然后还是在开始菜单的SDK里的那个命令提示符-> aspnet_regiis -i -enable,(不过如果先装IIS,再装.Net,IIS自动支持ASP.Net的),至于发布,把网站根目录(默认的Default.aspx所在目录)全部复制到IIS的根目录下,默认是C:\inetpub\wwwroot

例如:
1.
我把D:\Visual Studio 2008\Projects\WebApplication1\WebApplication1下的所有文件复制到C:\inetpub\wwwroot下
2.
IIS启动(开始->运行->iis.msc->本地计算机->网站->默认网站->右键->启动),
3.
打开IE,打开http://localhost/Default.aspx   
--------------------编程问答-------------------- 主要是为了不需要在打开VS 的情况下实现一键发布,从而加快开发速度 --------------------编程问答--------------------
引用 8 楼 computerfox 的回复:
晕倒,这些东西vs都提供了,你要重复造轮子?

同感~ --------------------编程问答-------------------- 是的,不过,是通过IIS来实现,里面涉及到权限问题,难解决
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,