发布后调试MVC 3时出错

时间:2012-02-03 01:10:50

标签: asp.net-mvc-3

我已经完成了一次发布到我的MVC应用程序。在那之后,我再也无法调试了! 这是错误。我的visual studio web服务器似乎正在加载machine.config

'/'应用程序中的服务器错误。

配置错误 描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

分析程序错误消息:在应用程序配置中找不到连接名称“LocalSqlServer”,或者连接字符串为空。

来源错误:

第255行: 第256行:

源文件:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config行:257


版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.237

这就是我的web.config的样子,我的代码中没有任何内容使用ASP.Net Membership,因为我的身份验证模式是“Windows”。 在我将构建模式从“Release”设置为“Debug”后,我确实设法在Visual Studio中再次运行它,但是在我今天再次发布之后......问题又回来了。

<configuration>
<connectionStrings>
<clear/>
<add name="ApplicationServices" connectionString="Data Source=SCG1SQL-64;Initial Catalog=Metallurgy;Integrated Security=True"
  providerName="System.Data.SqlClient" />
<add name="mandb100ConnectionString" connectionString="Data Source=scg1sql-64;Initial Catalog=mandb100;Integrated Security=True"
  providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<authentication mode="Windows"/>

<authorization>
  <deny users="?" />
</authorization>
  </system.web>
</configuration>

3 个答案:

答案 0 :(得分:2)

好吧,它正在使用machine.config。有一个配置层次结构。换句话说,如果您未在remove中明确指定(或clearweb.config),则会从machine.config中提取基本默认值。

您的ASP.NET应用程序将在当前目录中查找web.config以进行配置。如果找不到,或找不到所需的配置,它将查看应用程序的web.config。然后,对于默认值,或未清除或未删除的项目,它还将从machine.config提取配置。

但问题。您的错误消息是说它无法在任何地方找到LocalSqlServer连接字符串名称。您确定web.config中存在conn字符串名称吗?

修改:检查您的web.release.config文件。如果您下拉web.config文件,可以在解决方案资源管理器中找到它。这可能包含LocalSqlServer连接字符串吗?

答案 1 :(得分:1)

此链接可能有所帮助:http://msdn.microsoft.com/en-us/library/webmatrix.webdata.preapplicationstartcode(v=vs.99).aspx

这就是我解决问题的方法。显然,默认情况下启用此WebMatrix SimpleMembership。所以我在web.config中添加了这一行,问题就消失了!!!

<add key="enableSimpleMembership" value="false"/>

答案 2 :(得分:1)

我知道这是一篇旧帖子,因为这两个答案都是正确的,指出你正确的方向来解决问题,我想添加另一个解决方案,如果它可以帮助任何人。

在我的应用程序中,在解决方案资源管理器,项目上下文菜单(右键单击项目)中使用“Add Deployable Dependencies ...”项后发生错误。这添加了一个名为 _bin_deployableAssemblies 的目录,其中包含在服务器上部署应用程序所需的dll,如果它们没有将其中一些添加到GAC中。 _bin_deployableAssemblies 中的dll将复制到应用程序的bin目录中。

有两个感兴趣的dll我没有使用 WebMatrix.Data WebMatrix.WebData 。他们在我的应用程序的bin目录中的存在以某种方式混淆了默认的成员资格提供程序解析(如果我错了,请纠正我,或者对真正发生的事情添加解释:))。解决方案是简单地从bin目录和 _bin_deployableAssemblies 中删除有问题的dll。