我制作了 ASP.NET MVC Web应用程序并将其上传到GoDaddy。每当我将 web.config 中的连接字符串更改为 data source=[Server IP];initial catalog=[Database Name];user id=[Username];password=[Password];
时,都会收到此错误
500 - 内部服务器错误。
如果我data source=[Server IP];initial catalog=[Database Name];integrated security=true;
这样做,我会收到以下错误 - 这是意料之中的,因为数据库与 Web 应用程序位于不同的服务器上-
登录失败。登录名来自不受信任的域,不能与 Windows 身份验证一起使用。
因此,问题似乎与integrated security
部分有关。此外,它在我的本地计算机上工作没有问题,并且我无法使用我在 web.config 文件中使用的相同凭据连接到数据库服务器。
如何解决此问题?
我终于想通了。
首先,我将这一行添加到web.config文件中,以尝试查看详细的错误消息
<system.webServer>
<httpErrors errorMode="Detailed"/>
...
</system.webServer>
但我又遇到了同样的错误。
500 - 内部服务器错误。
在这个阶段,我很确定错误出在web.config中,而不是其他什么。
在专注于修改文件并咨询我的文件后,事实证明错误出在数据库密码的连接字符串中!!!
发生的事情是,我使用GoDaddy为数据库生成了一个随机密码,它类似于q59M&aw8。如您所知&
是XML中的非法字符,因此它损坏了整个文件。
解决方案是像这样转义它 &
=> &
,或者避免使用非法字符作为密码。