我很难部署我的网站。 我遇到了一些错误,他们得到了解决,我成功发布了我的网站,但当我尝试打开任何页面时,它给我404或500错误
我的主机提供商告诉我,如果此页面正在使用数据库并且未部署,那么这可能就是问题所在 所以我试图部署我的数据库,我得到了connectionString错误。
问题是我没有在web.config中存储我的connectionString 它存储在我的基本DAL类的属性中,并且它被所有DAL类使用 所以我更新了它,但我得到了同样的错误
我不知道什么是错的,我应该在web.config中包含connectionString吗?
N.B 当我构建软件包并尝试将活动模式设置为“release”时,它将设置恢复为“debug”!
答案 0 :(得分:1)
“我应该在web.config中包含connectionString吗?”
是的,您的连接字符串应该在web.config的<connectionStrings>
部分中定义,正是出于这个原因 - 这样您可以在将应用程序部署到a时轻松地将设置更改为指向其他数据库环境不同的环境,无需重新编译代码。
答案 1 :(得分:1)
IIS识别配置文件中的连接字符串。我看到它在查看某个应用程序时通过IIS管理控制台公开它们。我曾经遇到过类似的问题,原来这是一个身份验证问题。 IIS上的应用程序在特定池中和特定用户下运行。如果您指定在连接字符串中使用Windows身份验证(集成安全性),则此用户必须具有访问数据库的权限。如果运行应用程序的用户没有连接到数据库的必要权限,则应在连接字符串中明确指定用户名和密码。
在任何情况下,您都可以在web.config中打开includeExceptionDetailInFaults
并获取有关服务失败原因的更多信息(msdn):
<serviceBehaviors>
<behavior>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
答案 2 :(得分:1)
假设您的DAL是类库,我会将连接字符串存储在app.config中。这样,您可以轻松更改连接字符串,而无需将连接字符串放在使用该库的每个Web应用程序中。
答案 3 :(得分:1)
“问题是我没有将我的connectionString存储在web.config中它存储在我的基本DAL类的属性中,它被所有DAL类使用,所以我更新了它,但是我得到了同样的错误”< / p>
是的,硬编码连接字符串是一个主要问题。要回答你的下一个问题“我应该在web.config中包含connectionString吗?”,答案是肯定的。
至于数据库的正确部署,您可以查看我在2008年创建的this blog entry。
答案 4 :(得分:-1)
我很抱歉,但所有答案都告诉我,我需要将'ConnectionString'放在'Web.config'中,但实际上当我将我的应用程序添加到虚拟目录并且我不需要时,整个问题就解决了更改我的DAL图层或向web.config添加任何内容
当然,我从你的答案中学到了很多,但我很感激,但是我不需要在web.config中添加任何内容。如果我决定使用这种设计模式。