将ASP.NET MVC 3(Razor)应用程序发布到运行带有IIS 6的Windows Server 2003的远程服务器上

时间:2011-05-25 05:03:39

标签: asp.net asp.net-mvc iis asp.net-mvc-3 iis-6

我已经构建了一个ASP.NET MVC 3 Web应用程序(具有特殊的Razor / cshtml页面),可以在我的本地计算机上运行IIS Express。现在,我正在尝试将其发布到运行Windows Server 2003和IIS 6的远程服务器,并且刚刚升级到.NET Framework 4.0。

我能够使用Visual Studio 2010的“发布”对话框(发布方法:FTP)将所有文件成功发布到远程服务器上的正确目录中,并且我按照说明包含了运行ASP所需的所有DLL。在没有安装它的机器上运行.NET MVC,但现在我已经陷入困境了。

第一个问题是我无法访问远程服务器的IIS。我可能能够让托管公司添加虚拟目录或更改设置,但我不确定他们知道他们在做什么,而且此刻,我不知道无论如何要告诉他们什么。

第二个问题是我需要我的网络应用程序在内部现有网站(网络应用程序基本上是主网站的受保护成员区域)。所以,假装主站点是http://www.foobar.com。我想通过输入网址http://www.foobar.com/members来访问我的网络应用。

问题

  1. 是否可以在不访问远程服务器的IIS的情况下发布我的Web应用程序?
  2. 如果没有,我究竟需要告诉托管公司在IIS中添加或更改哪些内容?
  3. 项目属性的Web选项卡下的设置是影响发布还是仅影响本地调试?目前,我已将其设置为使用IIS Express,项目URL为“http:// localhost:7373 /”。我需要更改这些吗?
  4. 鉴于远程服务器正在运行Windows Server 2003和IIS 6.0,是否可以使用Web Deploy或仅限于FTP?
  5. 如果我可以使用Web Deploy,我应该为服务URL添加什么?我现在所拥有的是一个格式为ftp://www.foobar.com/www的URL和一个用户名和密码。
  6. 如果我需要使用FTP,在将必要的文件上传到ftp://www.foobar.com/www/members后,我需要采取哪些步骤才能使应用正常运行?我并不担心数据库,安全证书,注册表,GAC等。我只想知道在我放http://www.foobar.com/members时让我的网络应用程序的主页出现所需的步骤。

1 个答案:

答案 0 :(得分:2)

您是否看过Scott Hanselman撰写的this文章? 除了那篇文章之外,请在与自己完全相同的环境中阅读StackOverflow上的以下thread

修改

您的第一步应该是让托管公司使用以下参数设置虚拟目录(IIS 6):

  • ASP.NET版本:4.0.30319(或更高版本)

  • 本地路径:[主网站的root ftp路径] \ Members

  • []脚本源访问(未选中)

  • [x]阅读(选中)
  • []写(未选中)
  • []目录浏览(未选中)
  • [x]日志访问(已选中)
  • [x]索引此资源(已选中)

  • 申请名称:会员

  • 执行权限:仅限脚本

  • 应用程序池:ASP.NET 2.0