Azure部署期间不需要的数据库

时间:2013-11-17 20:02:21

标签: c# asp.net entity-framework asp.net-mvc-4 azure

我尝试将我的项目部署到Azure中,并且在发布成功的同时,我总是得到“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。”(提供程序:SQL网络接口,错误:26 - 错误查找指定的服务器/实例)“错误。

我阅读/观看了一些关于通过Visual Studio发布asp.net项目的教程,我注意到我的项目与教程中的项目有所区别:

虽然其他人在其“发布”窗口的“设置”部分只有一个数据库,但我有两个,我不知道为什么。我认为这可能是我收到错误的原因。

这是我的窗口:

Publish settings for me

这是教程中的一个:

Publish settings in tutorial

我真的没有这个,因为我应该只有一个数据库,比如我的服务器资源管理器显示:

server explorer

在我的web.config文件中,只定义了一个连接字符串,这是DefaultConnection:

  <connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-vocab_2-20130928092402;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-vocab_2-20130928092402.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

我想我的DbContext派生的VocabModel类也是相关的:

public class VocabModel : DbContext
{

        public VocabModel() : base("name=DefaultConnection")
        {
            if (Membership.GetUser()!=null)
            {this.currentuser = UserProfiles.Find((int)Membership.GetUser().ProviderUserKey);}
        }

        public DbSet<UserProfile> UserProfiles { get; set; }
        public DbSet<ForeignExpression> ForeignExpressions { get; set; }
        public DbSet<PracticeResult> latestResults { get; set; }   

}

那有什么不对?我是否在实体框架中犯了一个根本性的错误? (这是我第一次使用它)

1 个答案:

答案 0 :(得分:0)

嗯,那是

if (Membership.GetUser()!=null)
        {this.currentuser = UserProfiles.Find((int)Membership.GetUser().ProviderUserKey);}

参与我模型的构造函数。我将此代码移动到currentuser属性的get方法(无论如何更合乎逻辑),现在它按预期工作。任何解释仍然会受到赞赏。 (为什么该部分在发布期间会导致额外的数据库?)