如何部署mvc应用程序

时间:2013-05-13 07:57:23

标签: asp.net-mvc deployment

我已经完成了一个mvc应用程序,我想在测试网站上发布它。我设法在VS中使用“发布”命令发布文件,但是当我访问我的应用程序的链接时,没有。

我使用FTP发布网站,我检查了文件是否在主机上,但是应用程序没有打开。 index.cshtml未显示。我需要做一些额外的配置才能使其正常工作吗?

另外,我按照http://msdn.microsoft.com/en-us/library/dd410407(v=vs.90).aspx的步骤进行了操作。


我是否需要对web.release.config和web.debug.config进行任何更改?

这是我的web.config:

<configSections>

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=xxxxx Initial Catalog=xxxx; Persist Security Info=True; User ID=xxxxx; Password=xxxxx" providerName="System.Data.SqlClient" />
<add name="CDSEntities" connectionString="metadata=res://*/Models.CDS.csdl|res://*/Models.CDS.ssdl|res://*/Models.CDS.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxxx;initial catalog=xxxxx;user id=xxxx;password=xxxxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

这是我的web.release.config:

<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
  In the example below, the "Replace" transform will replace the entire 
  <customErrors> section of your Web.config file.
  Note that because there is only one customErrors section under the 
  <system.web> node, there is no need to use the "xdt:Locator" attribute.

  <customErrors defaultRedirect="GenericError.htm"
    mode="RemoteOnly" xdt:Transform="Replace">
    <error statusCode="500" redirect="InternalError.htm"/>
  </customErrors>
-->

和我的web.debug.config:

<system.web>
<!--
  In the example below, the "Replace" transform will replace the entire 
  <customErrors> section of your Web.config file.
  Note that because there is only one customErrors section under the 
  <system.web> node, there is no need to use the "xdt:Locator" attribute.

  <customErrors defaultRedirect="GenericError.htm"
    mode="RemoteOnly" xdt:Transform="Replace">
    <error statusCode="500" redirect="InternalError.htm"/>
  </customErrors>
-->

1 个答案:

答案 0 :(得分:1)

回答我自己的问题:我做的是以下内容:

使用VS发布,在服务器上使用FTP添加文件。

然后我将以下内容添加到web.config中,因为我收到以下错误:

'/'应用程序中的服务器错误。没有为扩展名“.cshtml”注册的构建提供程序。您可以在machine.config或web.config中的部分中注册一个。确保具有BuildProviderAppliesToAttribute属性,该属性包含值“Web”或“全部”。

所以我添加了以下内容:

<compilation debug="true" targetFramework="4.0">

  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

之后在web.release.config中我添加了web.config中的连接字符串。我将举一个例子让它更清楚:

<connectionStrings>
  <add name="EAF" connectionString="Data Source=NTSQLT\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=XXXX" providerName="System.Data.SqlClient" />
</connectionString>

和web.release.config我为每个连接字符串添加了xdt:Transform =“SetAttributes”xdt:Locator =“Match(name)”。

<connectionStrings>
  <add name="EAF" connectionString="Data Source=NTSQLP\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=YYYY" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
 </connectionStrings>