您是否必须发布包含成员资格表的DefaultConnection?

时间:2016-02-02 14:32:55

标签: c# asp.net asp.net-mvc deployment server

尝试将网站发布到包含我的自定义数据库的主机,默认情况如下:

<add name="PortfolioContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Portfolio;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>

在发布网站时,我无法登录,因为默认连接数据库没有被创建(包含成员资格用户表),我认为这是不合适的,我可能错了?我可以在Management Studio中为我的自定义数据库生成脚本,但DefaultConnection甚至不允许我手动创建关联的表。

我的错误日志显示此

  

2016-02-02 12:28:35 W3SVC30 217.194.213.135 GET /登录   ReturnUrl =%2Fdashboard 80 - 95.147.124.217   的Mozilla / 5.0 +(视窗NT + + 10.0 + WOW64)+为AppleWebKit / 537.36 +(KHTML,+等+壁虎)+镀铬/ 48.0.2564.97 + Safari浏览器/ 537.36    - 500 0 0 1198 416 203

虽然我不确定这意味着什么。对不起,这是我第一次尝试发布网站。感谢

编辑:

  

无法找到路径的一部分&C; \ HostingSpaces \ hannahha \ hannahhamlin.co.uk \ wwwroot \ Assets \ Common \ images&#39;。

这是它显示的错误。这导致了我一个我知道无论如何都要面对的问题。如何包含必要的发布目录?

1 个答案:

答案 0 :(得分:0)

首先,这不是错误日志。这是IIS的默认请求日志。它告诉你的是,使用特定浏览器的客户通过GET请求/Login。换句话说,对这个问题毫无用处。

你需要一个带有堆栈跟踪的真正的错误。您可以暂时关闭自定义错误(在Web.config中<customErrors mode="Off" />),安装类似Elmah的内容以记录错误,或使用remote debugging

但是,最有可能的是,连接字符串仅在本地工作,您看到的错误只是数据库连接错误。您在开发中使用的连接字符串很少与生产所需的连接字符串完全匹配,因此您应该在发布时使用config transforms来更改它。

这当然假设您甚至在生产中设置了数据库服务器以进行连接。 Visual Studio使用了大量的数据库魔术,使您可以专注于代码,而不是像连接到数据库那样的琐碎实现细节。然而,当你上线时,训练轮关闭,你负责确保所有必要的接线。如果您没有数据库服务器,请安装一个。如果您没有数据库,请创建一个。然后,只需更改连接字符串即可连接到该字符串。

<强>更新

错误消息是从最初的这个问题中删除的,我认为通过创建一个新问题并删除这个问题最好。

也就是说,我不确定您要完全实现的目标,但项目目录下的任何内容都将与您的网站一起发布(某些特殊目录除外,如App_Data)。如果您引用的文件位于项目目录之外的某个目录中,则将包含在内,并且实际上无法包含它们。但是,可以创建一个构建操作,将文件复制到项目下的某个位置,然后就可以发布它们。