0

几天来,我一直在尝试从 Juval Lowy 的网站(Programming WCF Services 的作者和 IDesign 的创始人)编译/运行示例 WCF 应用程序。示例应用程序利用 Juval 的 ServiceModelEx 库,该库将故障/错误记录到“WCFLogbook”SQL 数据库。不幸的是,当示例应用程序出现故障时,我收到以下错误:

SQL 异常 4060:“无法打开登录请求的数据库 \"WCFLogbook\"。登录失败。\r\n用户 'Bill-PC\Bill' 登录失败。”

我确认 SQL WCFLogbook 数据库已创建并已授予我 (Bill-PC\Bill) 访问数据库的所有适当权限。此外,防火墙中已打开端口 8006 和端口 1433。TCP/IP 已启用并已选中“允许远程连接到此服务器”。我在 App.Config 文件中使用以下端点:

<client>
     <endpoint name="LogbookTCP"
        address="net.tcp://Bill-PC:8006/LogbookManager"
        binding="netTcpBinding"
        contract="ILogbookManager"
     />
</client>

不幸的是,SQL 是一个我以前不需要冒险进入的“世界”,我对自己缺乏成功感到非常沮丧。有人对如何使它工作有任何其他建议吗?我错过了什么吗?

4

2 回答 2

1

无法打开登录请求的数据库“WCFLogbook”

错误信息非常清楚。我理解您的沮丧,但我首先相信错误信息,其次相信您的调查。错误消息说数据库不存在,或者无法打开,或者用户无权访问它。您必须逐步验证:

  • 您的 WCF 服务连接到您期望的 SQL Server 实例
  • 该数据库 WCFLogbook 存在于您要连接到的 SQL Server 实例上。请注意,如果您安装了区分大小写的排序规则实例,则名称区分大小写
  • 数据库 WCFLogbook 在线
  • 允许登录 Bill-PC\Bill 连接到数据库。
于 2010-06-15T22:08:29.417 回答
0

SQL Exception 4060: "Cannot open database \"WCFLogbook\" requested by the login. The login failed.\r\nLogin failed for user 'Bill-PC\Bill'."

很明显,您的数据库出现登录错误。异常抛出在哪里?在您的客户端应用程序或 WCF 服务调用中?

我问的原因是为您指出要调试的位置;如果异常来自 WCF 调用上的错误合同,则很可能发生在服务本身中。如果它在客户端应用程序上,那么显然这就是问题所在。

您使用的是什么版本的 SQL?如果你有 SQL Express,那么默认情况下你应该有足够的权限来运行应用程序。您的用户是管理员吗?您可能需要以管理员身份打开数据库,然后确保 Bill-PC\Bill 具有登录名并已映射到 WCFLogbook 数据库中的 dbo 模式。

于 2010-06-15T22:01:58.433 回答