【问题标题】:Debugging a connection string调试连接字符串
【发布时间】:2012-08-12 08:39:36
【问题描述】:

我有一个使用本地 SqlExpress 在本地模式下运行良好的网站。当我发布并放置最终的服务器连接字符串时,我不断得到无助的500 - Internal server error

我尝试在本地调试模式下使用最终的服务器连接字符串,但即使这样它也使用本地 SqlExpress 实例,我不知道为什么!所以又是没用的。这是连接字符串:

<add name="MainDbContext" connectionString="Data Source=rose.arvixe.com;Initial Catalog=mydb;Persist Security Info=True;User ID=myuser;Password=mypassword" providerName="System.Data.SqlClient" />

我使用这些信息通过 Management Studio 连接到服务器,它工作正常。

是否有可能至少得到一个明确的错误信息?

在解决这个问题 7 小时后,我请求帮助。

编辑:如果我从页面中删除所有数据访问,它会起作用。一旦我创建上下文,就会发生错误。

【问题讨论】:

  • 您完全确定是连接字符串导致了问题吗?您可以尝试查看 IIS 服务器上的事件日志,看看它是否抛出了无法通过网络写入的异常,因此只是返回了一个通用的 500 内部服务器错误。
  • 如果您使用 Internet Explorer,您通常可以通过转到工具 | 获取更多信息。选项 |高级并关闭“友好的 http 错误消息”——根据您的错误配置,您将看到一些可能会给您提供线索的内容。可能很简单,因为安装在服务器上的 ASP.NET 版本不是您的目标,应用程序池运行时不正确等
  • 也许你可以下载一个像 Fiddler 这样的 HTTP 监听器,然后记录下远程服务器返回给你的响应。如果你真的在浏览器上收到服务器错误通知,那么也许你可以使用浏览器调试工具,例如 Chrome 开发者工具...
  • @Adrian :我添加了一些说明。事实上,我不能 100% 确定这是连接问题,因为错误消息没有用。 Firebug 什么也没添加,IE 工具只是说服务器响应是错误
  • @Mathieu 最终服务器是否与数据库服务器位于同一网络?您确定最终服务器可以访问数据库服务器吗?您能否远程连接到最终服务器终端 (RDP)?

标签: c# asp.net-mvc-3 web-applications connection-string


【解决方案1】:

如果您想要查看一些有用的调试信息而不仅仅是“服务器 500”,您需要 a) 关闭自定义错误(这样 IIS 将提供错误的技术描述)和 b) 关闭关于追踪。

  1. 在 web.config 的节点中,添加以下内容:
<trace
 enabled="true"
 requestLimit="100"
 pageOutput="false"
 traceMode="SortByTime"
 localOnly="false"
    />

<customErrors mode="Off" />
  1. 保存文件

  2. 导航到出现服务器 500 错误的页面。希望您现在能看到更详细的信息。

  3. 导航到 [您的 Web URL]/trace.axd 并单击其中一条轨迹。这应该会为您提供有关页面中正在发生的事情的更多信息。

【讨论】:

  • 奇怪的是,如果我删除上下文,它会起作用,但是一旦我收到错误 500,导航到 /trace.axd 时就会收到相同的错误 500
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
相关资源
最近更新 更多