数据库部署问题

我在部署我的网站时遇到了困难。 我遇到了一些错误,他们得到了解决,我成功发布了我的网站但是当我尝试打开任何页面时,它给了我404或500错误

我的主机提供商告诉我,如果这个页面使用的是数据库并且没有部署,那么这可能就是问题所以我试图部署我的数据库,我得到了connectionString错误。

问题是我没有将我的connectionString存储在web.config中它存储在我的基本DAL类的属性中,它被所有DAL类使用,所以我更新了它但是我得到了同样的错误

我不知道什么是错的,我应该在web.config中包含connectionString吗?

注意当我构建软件包并尝试将活动模式设置为“release”时,它将设置恢复为“debug”!

“我应该在web.config中包含connectionString吗?”

是的,您的连接字符串应该在web.config的部分中定义,正是出于这个原因 – 这样您可以在将应用程序部署到不同的环境时轻松地将设置更改为指向其他数据库环境,而无需重新编译你的代码。

IIS识别配置文件中的连接字符串。 我看到它在查看某个应用程序时通过IIS管理控制台公开它们。 我曾经遇到过类似的问题,原来这是一个身份validation问题。 IIS上的应用程序在特定池中和特定用户下运行。 如果您指定在连接字符串中使用Windows身份validation(集成安全性),则此用户必须具有访问数据库的权限。 如果运行应用程序的用户没有连接到数据库的必要权限,则应在连接字符串中明确指定用户名和密码。

在任何情况下,您都可以在web.config中启用includeExceptionDetailInFaults ,并获取有关您的服务失败原因的更多信息( msdn ):

      

假设您的DAL是类库,我会将连接字符串存储在app.config中。 这样,您可以轻松更改连接字符串,而无需将连接字符串放在使用该库的每个Web应用程序中。

“问题是我没有将我的connectionString存储在web.config中它存储在我的基本DAL类的属性中,它被所有DAL类使用,所以我更新了它,但是我得到了同样的错误”

是的,硬编码连接字符串是一个主要问题。 要回答下一个问题“我应该在web.config中包含connectionString吗?”,答案是肯定的。

至于数据库的正确部署,您可以查看我在2008年创建的博客条目 。

我很抱歉,但所有答案都告诉我,我需要将’ConnectionString’放在’Web.config’中,但实际上当我将我的应用程序添加到虚拟目录并且我不需要更改我的问题时,整个问题就解决了DAL层或向web.config添加任何内容

当然我从你的答案中学到了很多,但是我很欣赏它,但是我不需要在web.config中添加任何内容。如果我决定拥有这种设计模式。