1

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

我使用 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>
-->

4

1 回答 1

1

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

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

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

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

所以我添加了以下内容:

<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>
于 2013-05-13T09:41:00.917 回答