2012-05-09 11 views
1

私はこのウェブサイトをチェックしましたが、解決策は見つかりませんでした。 私はmvc4でウェブサイトを作った。私はカスタムデータエンティティを書きました。 しかし、そのアプリケーションはlocalhost上でうまく動作しますが、リモートサーバでは使用できません。カスタムDataContextとリモートデータベース

ここにここに私の構成 のweb.configの接続文字列

<add name="DefaultConnection" connectionString="Data Source=ipaddress;Initial Catalog=DataContext;User ID=user;Password=pass" providerName="System.Data.SqlClient" /> 

は私のDataContextです。 これは、ローカルのSQL Serverに新しいデータベースを作成します。どのように私はこの設定でリモートサーバーを使用できますか?

public class DataContext : DbContext 
{ 
    public DbSet<Sayfalar> sayfa { get; set; } 
    public DbSet<Uyeler> uye { get; set; } 
    public DbSet<Roller> rol { get; set; } 
    public DbSet<Loglar> log { get; set; } 
    public DbSet<Resimler> resim { get; set; } 
} 

class dbYenile : DropCreateDatabaseIfModelChanges<DataContext> 
{ 
    protected override void Seed(DataContext context) 
    { 
     MembershipCreateStatus Durum = new MembershipCreateStatus(); 
     Membership.CreateUser("demo", "123456", "[email protected]", "soru", "cevap", true, out Durum); 
     Durum = new MembershipCreateStatus(); 
     Membership.CreateUser("demo1", "123456", "[email protected]", "soru", "cevap", true, out Durum); 
     Roles.CreateRole("Yonetici"); 
     Roles.AddUsersToRoles(new string[] { "demo" }, new string[] { "Yonetici" }); 
     //Console.WriteLine(Hatalar.uyelikHatalari(Durum)); 
    } 
} 

ここでGlobal.asax.csのapplication_start void。

Database.SetInitializer<DataContext>(new dbYenile()); 
     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 

     BundleTable.Bundles.RegisterTemplateBundles(); 
+1

にweb.configファイルに接続文字列の名前を変更リモートサーバー '?例外はありますか?データを取得していませんか?あなたは間違ったデータを取得しますか? –

+0

いいえ、エラーは発生しません。デバッグモード(webconfigのリモートIPアドレスを使用)で実行すると、ローカルサーバーにデータベースが作成され、引き続き使用されます。 – Ramazan

+0

サーバでもローカルデータベースを開くことはできませんが、サーバのローカルデータベースは使用していません。別のサーバで外部データベースを使用しています。 – Ramazan

答えて

3

EFは、あなたの接続は上記ません「DefaultConnectionを」、「のDataContext」と命名されるべきであることを意味DbContextから派生したクラスと同じ名前が付けられ、デフォルトでは、データベース接続を使用しています。あなたは、接続名を保持したい場合は、あなたのDataContextクラスにこれを追加することができます。


public DataContext: base("DefaultConnection") {} 

をそれ以外の場合は「DataContextの」あなたは `それを使用することはできませんなぜ

関連する問題