0

セットアップで拒否されたCREATE DATABASE権限をMVC 3 - サーバーへの公開後 - データベース 'マスタ'

MVC 3 EF 4.1コードファースト - Windows 7のプロ64 Devのマシン、ホスト用に別の勝利7 Proを。

私はSQLCE4.0データベースを使い始めましたが、すべてがうまくいきました(データベース初期化子でテーブルが作成され、データが取り込まれました...など)。

私が望むようにすべての作業を完了したら、私はSqlCe DBをスクリプト化し、実際のSQL 2008データベースを作成し、適切なポートを開いてTCP接続を有効にしました。


私は特にこのアプリのために作成したユーザーで、私のイントラネットサーバー\インスタンス名を指すように私の接続文字列を変更した場合は問題
、それは完全に私のdevのマシンから実行されている作品。私は、サーバー(WebサーバーとSQL Serverが同じである)にアプリを公開、そして私が(別名DBへのアクセス)のWebサイトにログインしようとした場合

、その後、私が取得:

CREATEデータベース 'master'でDATABASE権限が拒否されました。

私はDBInitializerの設定をコメントアウトしたので、dbヒット時には何も作成しないでください。テーブルはすでにあります。

私がDatabase.SetInitializer(null)を実行した場合。その後、私は別のログインエラーが表示されます。

私は正確に覚えていないが、それはLOGINは、だから私はNETWORK SERVICEにアイデンティティを変更IIS APPPOOL \ ApplicationPoolIdentity

で失敗したの影響に何かだったとLOCAL SERVICEを試​​してみても、どちらも同じログインに失敗しました。

「IIS APPPOOL \ MyApplicationName」という名前のSQLユーザーを追加すると、私はthisというポストに従いました。 SQLそれは無効な文字を持っているので、私はそれをさせてはいけない...図に行く。

私の開発マシンからDBにアクセスするネットワーク上では完全に動作しますが、sqlとサイトをホストしている同じマシンに公開すると、権限が拒否されるか、ログインに失敗します。私はネットを精査して、別のものを試しました。

編集:ここに私の接続文字列です:

<add name="AntripContext" connectionString="Data Source=|DataDirectory|AntripWeb.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    <!--<add name="AntripSQL" connectionString="Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;" providerName="System.Data.SqlClient" />--> 
    <add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=|DataDirectory|\AntripWeb.sdf&quot;" providerName="System.Data.EntityClient" /> 
    <!--<add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;&quot;" providerName="System.Data.EntityClient" />--> 

注:コメントアウト接続文字列は、SQL 2008データベースを使用するものです(それは私の公表のアプリを破ります)。

答えて

1

接続文字列がIntegrated Security = trueの場合、SQLユーザーではなく指定したユーザーとしてSQLに接続するように聞こえます。と入力してくださいを使用していますか?

しかし、まだデータベースを作成しようとしています:あなたはIDatabaseInitializerを交換する必要があります - 私はそれが慎重にエンティティと同じ名前のDBを探すだろうと思う!

+0

私は今晩家に帰るときにこれを試してみます - ありがとう。 – Jack

+0

私の編集内容を見て、接続文字列を追加しました。 – Jack

関連する問題