将ASP.NET应用程序部署到生产的适当方法是什么?

时间:2010-07-17 00:44:30

标签: c# asp.net visual-studio-2010 deployment

我讨厌听起来很愚蠢,但ASP.NET不是我的强项。

我已经构建了一个ASP.NET应用程序,我现在可以将其部署到生产服务器。在网上搜索我发现建议只使用VS2010中的安装工具来编译和安装生产服务器上的文件。但是,我发现它有点奇怪:

  1. 服务器上的文件正是我在系统上的文件。我想象一下,转移到生产服务器会涉及一些文件内容的编译和压缩,以便改进执行。但实际上,服务器上的所有文件都与我本地系统上的文件完全相同 - 我甚至可以在服务器上修改我的.cs文件,这样可行! (惊讶; - ))。
  2. 根据上述内容,我的所有代码都可以在服务器上随时查看。我不确定这是否是一个问题...例如,它是否会导致安全风险(由于文件中的密码)?

3 个答案:

答案 0 :(得分:1)

您是否在VS2010中创建了网站或Web应用程序项目?如果它是一个网站,您将要将其转换为Web应用程序项目。首次请求应用程序时,可以动态编译网站。 Web应用程序项目是预编译的,当您发布项目时,任何.cs文件都不会被推送到您的生产服务器。

我知道我可以通过右键单击我的Web项目并选择“转换为Web应用程序”来进行转换,但该菜单项可能因为ReSharper(5.1)或Microsoft的PowerCommands for Visual Studio 2010扩展而存在。

另外,请检查.aspx文件。你有.aspx和.aspx.cs吗?或者还有一个.aspx.designer.cs文件?设计器文件仅存在于Web应用程序项目中。如果您没有看到它们,那么您将拥有一个网站,而不是一个Web应用程序项目。

答案 1 :(得分:1)

你可以按照自己的意思去做,但我不会因为你提到的原因而推荐它。加上你的代码实际上没有编译!

典型的方法是编译应用程序,然后获取/ bin dll并将它们推送到服务器。基本站点需要web.config,包含DLL的bin文件夹和包含标记的任何ASPX文件,任何静态内容,如JS / CSS / Images等。在这种情况下,标记(aspx)仍然可以编辑但是CS代码在DLL内部,服务器上没有CS文件。

您还可以预编译实际修改ASPX文件的所有内容,您可以在此处找到更多信息:http://msdn.microsoft.com/en-us/library/ms227972.aspx

Visual Studio 2010在“生成”菜单下有一个“发布”功能,可以通过FTP或Web Deploy为您推送该站点,但这仅适用于较小的项目。

对于大多数事情,您将需要查看msbuild或nant来编写流程脚本,这可以允许您将JSmin或JSLint等内容合并到构建/部署中。

希望有所帮助。 -fs

答案 2 :(得分:0)

  1. 这取决于您的发布方式。 http://weblogs.asp.net/owscott/archive/2009/06/06/visual-studio-2010-1-click-publishing.aspx。 “完全一样”不是问题。您对编译和压缩的期望是“如此不正常”。为什么必须执行它们才能使您感到快乐,而您只需要简单的部署?

  2. 如何保护您的代码显然是您应该手动执行的一些额外工作,例如调整NTFS权限等。没有什么是自动的。