会社のSQL ServerにEntity Frameworkのコードを先に展開すると問題が発生します。Entity Framework SqlException:ログインによって要求されたデータベースを開くことができません。 "ユーザー 'domain userid'のログインに失敗しました
EFを使用するASP.NET MVVMアプリケーションがあります。私の開発ラップトップでは完璧に動作します。しかし、SQL Serverにデータベースを移動すると、問題が発生します。
- :
私は私の
web.config
で使用している接続文字列は、私が接続してから、この接続を使用してデータベースを照会することができるよと<add name="ApplicationInventoryContext" connectionString="Data Source=COMPANY_SQLSERVER; Initial Catalog=ApplicationInventory; Integrated Security=True;Connect Timeout=15;" providerName="System.Data.SqlClient" />
は、接続文字列はOKであるべきですVisual Studio SQL Serverエクスプローラー
- Microsoft SQL Server Management Studio
これは私のDbContext
です:
public class ApplicationInventoryContext:DbContext
{
public DbSet<Application> Applications { get; set; }
public ApplicationInventoryContext() :
base("name=ApplicationInventoryContext")
{
Database.SetInitializer<ApplicationInventoryContext>(null);
}
}
これは私がデータベースを照会リポジトリです:どのように
Entity Framework Exception SqlException: Cannot open database requested by the login
SqlException: Cannot open database requested by the login .
The login failed for user ' domain\userid’
:私は、次のエラーを得たアプリケーションを実行すると
public class DisconnectedRepository
{
public List<Application> GetApplicationsList()
{
using (var context = new ApplicationInventoryContext())
{
return context.Applications.AsNoTracking().ToList();
}
}
.....................
}
上記の2つの接続で使用しているのと同じログインがエラーに表示された場合、これは起こりますか?
DbContextを作成する際に接続文字列のキー名を指定してみてください。このQAを参照してくださいhttps://stackoverflow.com/questions/4805094/pass-connection-string-to-code-first-dbcontext – Steve
あなたのウェブアプリケーションはあなたのように動作しません。通常、セキュリティ上の理由から、セキュリティ保護された匿名ユーザーとして実行されます。 「Integrated Security」は、プロセスを所有しているユーザーがDBにアクセスできる場合にのみ機能します。 – Eris
@ Steve:Steveありがとうございました。正しい方向に私を送ってくれてありがとう。私はデバッグに時間を費やして、私はDbContextの作成でconnectionStringを指定しなければなりませんでした – DTG