每当在 ASP.NET MVC 的 web.config 文件中编辑连接字符串时,我都会收到内部服务器错误

I get Internal Server Error whenever editing connection string in ASP.NET MVC's web.config file

我制作了 ASP.NET MVC 网络应用程序并将其上传到 GoDaddy。每当我将 web.config 中的连接字符串更改为 data source=[Server IP];initial catalog=[Database Name];user id=[Username];password=[Password]; 时,我都会收到此错误

500 - Internal server error.

如果我这样做 data source=[Server IP];initial catalog=[Database Name];integrated security=true; ,我会收到以下错误 - 这是预期的,因为数据库与 Web 应用程序位于不同的服务器上 -

Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

所以,问题似乎与 integrated security 部分有关。它在我的本地机器上也没有问题,我可以使用我在 web.config 文件中使用的相同凭据连接到数据库服务器。

我该如何解决这个问题?

我终于想通了

首先,我将这一行添加到 web.config 文件中,试图查看详细的错误消息

<system.webServer>
   <httpErrors errorMode="Detailed"/>
   ...
</system.webServer>

但是我又遇到了同样的错误。

500 - Internal server error.

在这个阶段,我很确定错误在 web.config 内,而不是其他地方。

后来重点修改了文件,又查阅了我的朋友,原来是数据库密码处的连接字符串出错了!!!!

发生的事情是我使用 GoDaddy 为数据库生成了一个随机密码,它是这样的 q59M&aw8。如您所知,&XML 中的 illegal character,因此它损坏了整个文件。

解决方法是转义 & => &amp;,或者避免使用非法 ] 个字符作为密码。