【问题标题】:Problem with ASP.NET MVC application deploymentASP.NET MVC 应用程序部署问题
【发布时间】:2020-12-09 16:06:41
【问题描述】:

我目前正在部署我的 ASP.NET MVC5 项目。我已经部署了项目文件,但我猜数据库有一些问题。我做了以下步骤来部署数据库:

  1. Visual Studio 中的Update-database -script 获取我本地数据库的SQL 脚本(我是通过代码优先开发的)

  2. 连接到我在托管面板中创建的 SQL Server 数据库。

  3. 运行我在 1 中生成的脚本。

  4. 将我的web.config 中的连接字符串更改为:

     <connectionStrings>
         <add name="DefaultConnection"
              connectionString="Data Source=xxxxxx.xxxwebix.xx,2401;Initial Catalog=xxxxx;User ID=xxxxx;Password=xxxxx"
              providerName=".NET Framework Data Provider for SQL Server"
              xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>   
     </connectionStrings>
    

所以基本上我用我用来连接数据库以运行脚本的相同凭据填写它。

很遗憾,我无法注册或登录。我收到一个错误

处理您的请求时出错。
500(内部服务器错误)

在控制台中,这并不能准确说明问题所在。所以基本上,我知道问题可能与数据库有关,但我不知道出了什么问题以及如何摆脱它。这是我的网站(也许它会有所帮助): http://gymmanager.bartoszchodyla.pl.hostingasp.pl/

如果有任何帮助,我将不胜感激。

编辑 我发现了问题-providerName。这很奇怪,因为我在 Visual Studio 中连接到它后从数据库属性中获取了它。我将其更改为默认的“System.Data.SqlClient”并且它有效。有人知道为什么吗?

【问题讨论】:

  • 请勿在任何帖子中显示/发布数据库或其他凭据!
  • 我知道。我发布了虚拟凭据。只有 DataSource 是真实的,这是无害的。谢谢你的警惕。

标签: asp.net sql-server database deployment http-status-code-500


【解决方案1】:

这里可能会发生很多事情。它抛出 500 错误的事实意味着某些代码导致了重大错误和/或您没有打开友好错误。

您可以采取一些措施来准确找出问题所在。在您的控制台中,确保打开友好错误,您应该会获得更多信息。您还可以在您认为问题所在的位置添加 try ... catches 并避免异常并改为编写消息(这相当粗略,但又快又容易)。打开跟踪也可以工作,只要您实际上可以在没有 500 的情况下启动应用程序。您在每个例程之前和之后添加跟踪语句,然后检查跟踪文件。同样可以通过写入文件以更粗略的方式完成。这种方法的使用是可以随意开启和关闭trace。

如果您以正确的方式创建 SQL 脚本,那么您首先使用代码的事实并不重要。当您运行它时,只要它有效(创建并可能是种子?),您就拥有正确的架构。

那么,应用程序是预先抛出错误还是仅在访问数据时抛出错误?如果是后者,您有一个很好的起点来查找错误。

顺便说一句,您可以通过更改本地连接字符串来针对您的提供商数据库进行本地测试。这取决于是否打开某些端口,如果不是出于安全原因,您甚至可以这样做。然后就可以在本地调试异常了。

【讨论】:

  • 感谢您的回答格雷戈里。我找到了解决方案并在帖子编辑部分分享了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2011-12-13
相关资源
最近更新 更多