【问题标题】:Entity framework issue with WCF and IISWCF 和 IIS 的实体框架问题
【发布时间】:2011-03-18 04:16:19
【问题描述】:

我在一台机器上拥有 WCF 服务、MS SQL 数据库和 Visual Studio 2008 开发环境。 操作系统是带有 IIS 7 的 Windows Server 2008。 IIS 7 托管我的 WCF 服务,该服务使用 Microsoft Entity Framework 连接到数据库。目前,我正在使用 Microsoft 的 WCF 测试客户端程序测试 WCF 服务。

问题是当我在 WCF 方法中声明这样的实体时:

NewTestDBEntities db = new NewTestDBEntities();

如果我连接到托管在 IIS 上的 WCF 服务,WCF 服务客户端会显示错误。

这是来自 WCF 服务客户端的错误消息:

调用服务失败。可能原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理、恢复到默认配置或刷新服务来恢复。

我知道这条线会引发错误,因为如果我拿走这条线,那么 WCF 调用就会完成。

我也试过通过运行调试器来测试WCF服务(WCF服务客户端是连接到ASP.NET开发服务器,不是IIS),这行代码

NewTestDBEntities db = new NewTestDBEntities();

运行没有错误。有谁知道为什么会这样?

非常感谢。

【问题讨论】:

    标签: c# sql wcf entity-framework iis


    【解决方案1】:

    您的 WCF 服务托管在 IIS 中 - 但您是否也将 EF4 所需的连接字符串复制到相关的 web.config 中??

    如果只是创建对象上下文(NewTestDBEntities)失败,通常是因为主机应用程序(此处:IIS)无法使用连接信息。

    【讨论】:

    • @peter:您愿意分享一下您是如何解决这个问题的吗?其他人可能会从中受益
    • 我有一个 ASP .NET 项目,与我的 WCF 服务项目在同一个解决方案中。 ASP .NET 项目基本上引用了 WCF 项目,所以我可以放到 IIS 上。因此,将有两个 .config 文件。我在 WCF 服务项目的配置文件中有连接字符串,但在 ASP .NET 项目中没有配置文件。这就是我遇到的问题。所以解决方法是将连接字符串复制到 ASP .NET 项目中的配置文件中。就是这样!
    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多