我一直试图从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是一个'世界',我现在不需要冒险进入,我对自己缺乏成功感到非常沮丧。有人会对如何使这个工作有任何其他建议吗?我错过了什么吗?
答案 0 :(得分:1)
无法打开数据库“WCFLogbook” 登录要求
错误信息非常清楚。我理解你的挫败感,但我首先相信错误信息,然后再调查你的调查。错误消息显示数据库不存在,或者无法打开,或者用户无权访问它。您必须逐步验证:
答案 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架构。