学习如何在不使用 Visual Web Developer 的情况下发布 MVC 应用程序。
通过在 WebMatrix、Visual Web Developer 或 Visual Studio 中使用发布命令,可以将 ASP.NET MVC 应用程序发布到远程服务器。
该功能会复制所有应用程序文件、控制器、模型、图像以及所有必需的 DLL 文件,这些文件可能用于 MVC、Web Pages、Razor、Helpers、SQL Server Compact(如果使用了数据库)。
有时您不希望使用这个选项。也许您的主机提供商只支持 FTP?也许您的网站基于经典 ASP?也许您希望自己来复制文件?也许您使用的是其他发布软件?
您会遇到问题吗?是的,会的。但是我们能解决它。
要执行网站复制,您必须了解如何引用正确的文件,复制哪些 DLL 文件,把它们存放到何处。
请按照这些步骤:
在继续之前,请确保您的主机运行最新版本的 ASP.NET (4.0)。
从开发机上把您的网站(所有文件夹和内容)复制到远程主机(服务器)上的应用程序文件夹。
如果 App_Data 文件夹中包含测试数据,请不要复制这个 App_Data 文件夹。
在远程服务器上的应用程序根目录中创建 bin 文件夹。(如果您已安装帮助器,则 bin 文件夹已经存在)
从您的文件夹中复制以下所有文件:
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies
到远程服务器上的 bin 文件夹。
如果您的应用程序使用了 SQL Server Compact 数据库(App_Data 文件夹中的 .sdf 文件),那么您必须复制 SQL Server Compact DLL 文件:
从您的文件夹复制以下所有文件:
C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private
到远程服务器上的 bin 文件夹。
创建或编辑应用程序中的 Web.config 文件:
<?xml version="1.0" encoding="UTF-8"?><configuration><system.data><DbProviderFactories><remove invariant="System.Data.SqlServerCe.4.0" /><add invariant="System.Data.SqlServerCe.4.0"name="Microsoft SQL Server Compact 4.0"description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1,Culture=neutral, PublicKeyToken=89845dcd8080cc91" /></DbProviderFactories></system.data></configuration>
您的 App_Data 文件夹中有没有包含测试数据的 .sdf 文件?
您是否希望将测试数据发布到远程服务器?
大多数时候是不希望。
如果您不得不复制 SQL 数据文件(sdf 文件),那么您应该删除数据库中的所有数据,然后把这个空的 .sdf 文件从开发机复制到服务器。
就是这样。祝您好运!