ActiveDirectoryに接続されたラップトップでVisualStudioWeb Developer 2010 Expressを使用して、Azure / MVC4アプリケーションを開発し、2台のPC間でプロジェクトを同期しています。2台目のPCにはVisualStudio2010 Professionalが搭載されており、ActiveDirectory上にありません。
2台目のPCでは、Azureへの公開を含め、すべてが正常に機能します。ラップトップで、ローカルSQLServerExpressデータベースに接続できません。Windows認証を使用しています。
これが私の接続文字列です:
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-HomeNetworking-20121017194204;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
ただし、アプリケーションに接続しようとすると、エラーが発生します(ドメインを変更してログインしました)。
ログインで要求されたデータベース「aspnet-HomeNetworking-20121017194204」を開くことができません。ログインに失敗しました。ユーザー'DOMAINNAME\UserName'のログインに失敗しました。
SQL認証に切り替えて、「sa」のログインとパスワードを明示的に指定しても、接続が拒否されます。SQL Server Management Studioを使用して、WindowsまたはSQL認証を使用して問題なく接続できるため、データベース権限は問題ないようです。
同様の問題に関する他の質問を読みましたが、どれも私の問題を解決していないようです。
FluentNHibernateを使用していますが、CreateSessionFactoryコードの抜粋は次のとおりです。
public static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("DefaultConnection"))
.ShowSql())
.Cache(c => c.UseQueryCache().ProviderClass<HashtableCacheProvider>())
.Mappings(m =>m.FluentMappings.AddFromAssemblyOf<Benchmark>())
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
}
繰り返しになりますが、これはドメインが有効になっていないPCでも、Windows Azure(接続文字列が代わりにAzure SQLを使用する場合)でも正常に機能することに注意してください。