0

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を使用する場合)でも正常に機能することに注意してください。

4

1 に答える 1

0

解決策(または回避策)は、データベースの所有権をWindowsクレデンシャルに設定することでした。アクセス許可設定からデータベースにアクセスできたとしても、この操作を実行するだけで問題が解決しました。

于 2012-10-19T14:32:47.673 に答える