0

我在过去几天弹出此错误。我一直在关注Asp.Net Mvc 4 and the Web Api: Building a REST Service from Start to Finish关于如何构建 Rest Service API 的过程,结果如下:

无法打开登录请求的数据库“ServicesDb”。登录失败。
用户“my-PC\my”登录失败。

所以我停下来看了一会儿书,什么也没有。所以我下载了本书的配套项目,当我运行它时,我遇到了与我自己的服务相同的错误。

这让我很震惊,因为我一直使用Windows Authentication本地数据库引擎。我在使用Entity Framework时没有遇到任何问题,所以我开始认为这与我第一次使用的NHibernateFluent Nhibernate有关。

连接字符串:

<connectionStrings>
    <add name="ServicesDb" 
         providerName="System.Data.SqlClient" 
         connectionString="Data Source=(LocalDb)\v11.0;
         <!-- connectionString="Server=(LocalDb)\v11.0; <----- Tried this too -->
          initial catalog=ServicesDb;
          Integrated Security=True;
          Application Name=Services API Website" />
</connectionStrings>

有没有其他人在读这本书的时候遇到过这个问题?有谁知道这可能是什么原因,以及我如何才能通过它?

更新:这是无法执行的代码,这本书使用了 Ninject,我也是。

private void ConfigureNHibernate(IKernel container)
        {
            // Build the NHibernate ISessionFactory object
            var sessionFactory = FluentNHibernate //Fails here, sessionFactory variable not instantiated.
                .Cfg.Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.ConnectionString(
                        c => c.FromConnectionStringWithKey("ServicesDb")))
                .CurrentSessionContext("web")
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SqlCommandFactory>())
                .BuildSessionFactory();

            // Add the ISessionFactory instance to the container
            container.Bind<ISessionFactory>().ToConstant(sessionFactory); //sessionFactory needed here

            // Configure a resolver method to be used for creating ISession objects
            container.Bind<ISession>().ToMethod(CreateSession);

            container.Bind<ICurrentSessionContextAdapter>().To<CurrentSessionContextAdapter>();
        }
4

2 回答 2

0

好的,在这两种情况下,我都假设数据库在那里。这是因为在 Visual Studio 中,连接字符串会在服务器资源管理器中抛出应用程序数据库的影子。正因为如此,以及过去我使用 Entity Framework Code First 的事实,它使用 Migration 并为我处理了我所有的 SQL 内容。

我打开 Microsoft SQL Server Management Studio 并确认数据库确实存在。当我意识到它在那里时,我创建了它并确保它与我的连接字符串匹配。之后一切都很好,我可以在 Visual Studio 中执行我的 SQL 脚本。

于 2013-06-24T00:22:43.003 回答
0

我对 Asp.Net Core Web API 也有同样的问题。以前我让实体框架负责管理数据库的创建。当我最近开始一个新项目时,我注意到当我检查我的 SQL Server Explorer 时,它没有为我创建数据库。当我尝试发布数据时,它给出了错误登录失败。添加到浏览器中,当我使用 GET 动词时,我只得到一个空白页面。

我使用包管理器控制台调用以下命令:

  1. 添加迁移
  2. 更新数据库

希望它也适用于某人

于 2018-11-08T18:55:33.633 回答