2

通常,在 webforms 中,当您必须部署应用程序时,我们从 Visual Studio发布并将发布的文件夹仅放在服务器 (IIS) 上。但是,在 MVC Web 应用程序中,它是如何完成的。

它是否遵循相同的方式(仅在服务器上发布文件夹)或其他方法。

我尝试了以下方法,但没有得到任何结果。

  1. Web 部署包 - 完成本教程后 -> http://pluralsight.com/training/players/PSODPlayer?author=scott-allen&name=mvc3-building-deploy&mode=live&clip=0&course=aspdotnet-mvc3-intro

在 Web 部署包教程下,我找到了如何创建可以在 IIS 管理工具中导入的 Web 部署包。然后我发现了这个链接来帮助我做同样的事情->

http://www.iis.net/learn/publish/using-web-deploy/building-a-web-deploy-package-from-visual-studio-2010

. 但是在完成所有步骤之后,我得到了这个错误 - >(见截图)部署后出错 这个方法中缺少什么步骤?

2. Add roles - Windows Server 2012 - turn certain features of ASP.NET 3.5 and ASP.NET 4.5 on. 

我按照本教程进行了上述步骤->

http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-using-aspnet-35-and-aspnet-45

按照教程,我应该为部署 MVC 3.0 应用程序,打开“应用程序开发”选项卡下的 ASP.NET 3.5 和 ASP.NET 4.5 功能。在此之后,要部署应用程序,我应该在弹出的“高级设置”下选择 .net V2.0 作为应用程序池(参见屏幕截图) 在此处输入图像描述

但即使按照教程我得到了同样的错误“应用程序中的服务器错误......

  3. Publish under the "File System" Method. 

我们右键单击项目并选择“发布”,然后会弹出一个对话框,显示各种部署选项。在这个我们选择 - “文件系统”(见截图)在此处输入图像描述

我们发布了项目,但再次遇到同样的错误。

问题/疑问->

1. 在 IIS 8 上部署 MVC 3.0 应用程序的正确完整证明方式是什么。?

2.我们是否需要将整个解决方案放在服务器上并从那里运行或以其他方式运行

3.上述三种方法中是否缺少某些步骤或某些命令

4. 我们的要求基本上是找到一种方法,只将已发布的文件夹放在服务器上并运行,但它在 MVC 中真的是这样工作的吗(比如 web 表单)?

5. 文件系统方法(上面的第 3 点)是 Webforms 常用的方法,是否建议在 MVC 中也这样做。

6. 部署在 localhost 上运行,但是通过创建虚拟目录尝试时,它再次无法运行。

工作环境是 Visual Studio 2012 - Web Server Windows Server 2012- IIS 8

需要帮助来解决困惑。

问候, 曼格什

4

1 回答 1

7

我找到了在 Windows Server 2012 上使用 IIS8 部署 MVC 3.0 应用程序的完整解决方案。以下是步骤:

  1. 启动 Visual Studio 并在运行 IDE 时选择“以管理员身份运行”选项。

  2. 更改您的 Web.config 以添加以下代码行。

    <globalization culture="en-US"/>
    

这确保即使您的目标服务器有一些不同的设置,您也可以通过提及这行代码来强制执行您自己的设置。否则,您可能会遇到诸如 - 提交具有日期字段的表单,您可能无法提交,因为日期将设置为

01/01/01 :00:00:00:00
  1. 构建 - 遵循三个确定的步骤。

一个。清洁解决方案

湾。构建解决方案

C。重建解决方案

  1. 如果您正在使用共享环境,请完全签入您的解决方案。右键单击项目解决方案并选择发布选项。( 截屏)在此处输入图像描述

  2. 这将打开一个对话框,例如 this.(Screenshot 2)。这将向您显示可能的部署选项和一些其他设置。

在此屏幕上,您不必做太多事情,它会自动设置当前发布配置文件的默认设置。

在此处输入图像描述

下一个截图:

单击下一个选项卡,您将看到一堆选项,如下所示:

第一个选项要求您提供发布方法。它们有四个选项:

一个。网络部署

湾。网络部署包

C。文件系统

d。FTP

e. FPSE。

我的发布方法是“文件系统”。我还使用 Web-Dpeloy 和 Web-Deploy Package 部署了应用程序,但为了本文的目的,我将坚持使用文件系统。

下一个参数询问您希望发布文件夹所在的目标位置。这可以是硬盘驱动器上的本地位置或服务器上的远程位置。我在服务器上选择了一个远程位置,在那里我创建了一个发布文件夹,发布后我的所有文件都将存放在这里。

目标 URL 是可选的。我把它留空了。 在此处输入图像描述

让我们继续下一个屏幕截图。 在此处输入图像描述

设置选项卡为您提供以下选项:

  1. 配置:此下拉菜单中有两个选项 - 调试和发布。选择发布选项。

  2. 确保勾选“发布前删除所有现有文件”选项。这将在您每次发布项目之前清除所有现有文件。

  3. 这种发布方法不支持数据库发布。因此,如果您在项目中创建一个,则不要将其用于发布。在我的例子中,我使用了一个外部数据库来绑定到我的 Model Classes ,因此这种方法可以工作。

在下一个屏幕截图中:您在发布项目之前预览您的设置。 在此处输入图像描述

它将显示已发布的文件/文件夹将驻留的目标文件夹以及将要发布的项目,并再次显示警告,指出不会发布数据库。

点击发布。

检查您的输出窗口,因为它将逐行显示发布所需的步骤。

最后,它会显示成功发布项目的消息。

下一步:转到将保存已发布文件的位置。截图:你应该得到这样的东西:

在此处输入图像描述

这是您发布的文件夹和文件。现在让我们使用 IIS 来运行网站。

转到 IIS8 并根据屏幕截图右键单击此选项。(此镜头可能因系统而异)。 在此处输入图像描述

单击添加网站,这将打开另一个对话框,如下所示。

在此处输入图像描述

输入您的站点名称,然后单击页面右侧的“选择”按钮,这将打开另一个弹出窗口,如下所示。

在此处输入图像描述

从此下拉列表中选择合适的框架。因为我的是 MVC 3.0 项目,所以我选择了 ASP.NET 4.0 设置。(请尝试这些选项以了解哪些设置适合您。)

继续,输入/浏览到保存解决方案的物理路径。在我的例子中,我展示了我所有已发布文件的位置的屏幕截图。(有时为了避免文件夹冲突,请创建一个单独的文件夹并将其输入为您的物理位置,然后将文件从您发布它的文件夹复制到新文件夹)

保持其余条目不变。如果某些应用程序已经在默认 -80 端口上运行,则提供一个新端口。单击确定。

重新启动 IIS。转到浏览器并输入 URL。

就是这样!您的 MVC 3.0 Web 应用程序已成功部署。

谢谢,

曼格什

(PS - 任何不清楚的地方请留下您的评论,如果您觉得有用,请不要忘记 +1 :))

于 2013-06-19T08:48:54.910 回答