我已经完成了一个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="data source=xxxx;initial catalog=xxxxx;user id=xxxx;password=xxxxx;MultipleActiveResultSets=True;App=EntityFramework"" 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>
-->
答案 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>