WCF错误日志记录和SQL异常4060错误

时间:2010-06-15 21:55:21

标签: sql wcf accessibility servicemodelex

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

  

SQL异常4060:“无法打开数据库   登录请求“WCFLogbook”。   登录失败。\ r \ n \ 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是一个'世界',我现在不需要冒险进入,我对自己缺乏成功感到非常沮丧。有人会对如何使这个工作有任何其他建议吗?我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

  

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

错误信息非常清楚。我理解你的挫败感,但我首先相信错误信息,然后再调查你的调查。错误消息显示数据库不存在,或者无法打开,或者用户无权访问它。您必须逐步验证:

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

答案 1 :(得分: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架构。