服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志

Posted

技术标签:

【中文标题】服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志【英文标题】:The server encountered an error processing the request. See server logs for more details 【发布时间】:2014-03-15 05:46:10 【问题描述】:

我有一个简单的问题。

我在 Visual Studio 2013 中创建了 WCF 数据服务 5.6,并在其 *.svc.cs 文件中修改了行

public class CustomdataService : DataService< /* TODO: put your data source class name here */ >

连接我的实体

public class CustomdataService : DataService< SchedulerEntities >

但是当我想在浏览器中查看服务时,它会给我以下错误

请求错误

服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。

实体框架不过是一张表……

【问题讨论】:

我找到了答案,但我要等到 8 小时后才能发布。 什么是解决方案,因为我有同样的问题? 【参考方案1】:

实际错误可能不同。就我而言,从 AdventureWorks2012 数据库开始时,我收到了相同的一般错误消息。

因此,可以通过向服务类附加属性来查看实际问题,如here 所述:

[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class WcfDataServiceAW : EntityFrameworkDataService<AdventureWorks2012Entities>  ... 

希望对某人有所帮助。

附言。我的错误是:

异常消息是“'Address' 类型的属性 'SpatialLocation' 属于 'Geography' 类型,它不是受支持的原始类型。”。

【讨论】:

这应该是公认的答案,因为有多种可能的潜在异常和原因。在开发/调试期间添加此属性是可行的方法。【参考方案2】:

似乎 Entity Framework 6 和 WCF Data Services 5.6.0 需要一些提供程序一起工作,请在Using WCF Data Services 5.6.0 with Entity Framework 6+ 上阅读更多信息。

您只需使用 NuGet 包控制台管理器即可下载提供程序:

Install-Package Microsoft.OData.EntityFrameworkProvider -Pre

它的版本是 alpha 2,所以在未来,搜索最终版本。但是它对我有用。

最后,你需要使用EntityFrameworkDataService&lt;T&gt;,而不是DataService&lt;T&gt;T 是您的实体的名称。

【讨论】:

感谢分享答案。截至今天(2014-03-15),EF6 WCF 数据服务似乎仍处于试验阶段。更新到 EF6 后我遇到了同样的问题,我刚刚通过源代码控制将项目恢复到以前的版本,从而回滚到 EF5。现在一切正常。真是一种解脱! @Hong 为什么要打扰自己?我找到了使用 wcf 客户端服务的更好方法……使用 Asp.Net Web Api,这很棒。它的稳定版本与 odata 版本 3 一起工作,出色的预发布工作是针对 odata 版本 4 和 web api 2.2。不要错过 Entity Framework 6.0.2 和预发布 6.1.0 的强大功能。他们都是伟大的。更多内容:您可以在服务器端使用 Visual Studio 2013 在 Web api 中提供给您的异步方法。祝你好运,不要对微软绝望。 我忘记了什么。 Asp.Net Web Api 也更快,Microsoft 尽最大努力使其更加出色,而且它的发布周期很短(对我们有好处)。 ;) 感谢您的提示。我刚刚开始使用 Web API,发现它很棒。这是一个有很多客户端(移动应用)使用的 WCF 数据服务的项目,不幸的是它需要维护一段时间。 我在遇到同样的错误后偶然发现了这个线程。不幸的是,我刚刚开始使用 OData,并不熟悉 EF5/6 的细微差别、数据服务版本的功能等。所以在遵循教程并安装了许多“东西”之后,我现在绝望地迷失了预发布、带外、不受支持的软件。作为一名长期开发人员,我熟悉我们需要忍受的所有范式和语法变化,但整个情况绝对是可悲的。我只需要一些可靠的文档和软件,这样我就可以继续前进。很抱歉的咆哮。但到目前为止,这是我的回答。【参考方案3】:

根据this post,你必须改变CustomdataService的继承类型。

替换 DataService 的基本类型。对于 EF 5 或更低版本,您的数据服务应继承自 DataService,其中 T 是 DbContext 或 ObjectContext。对于 EF 6 或更高版本,您的数据服务应继承自 EntityFrameworkDataService,其中 T 是 DbContext。请参阅下面的 DataService 和 EntityFrameworkDataService 之间的区别了解更多详细信息。

【讨论】:

【参考方案4】:

转到 edmx,在图表中,删除所有表格,直到只剩下您想要的表格, 那么应该没问题,不能有所有的表,这是我找到的,

KT 王

【讨论】:

以上是关于服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server2008企业版(MSSQLSERVER)启动失败,提示“请求失败或服务未及时响应。有关详细信息请参

阿里云 Redis 服务遇到的问题

无效的对象名称“表名”

由于内部错误,服务器无法处理请求

SQLSERVER 服务 请求失败或服务未及时响应。有关详细信息,请参见事件日志或其他适用的错误日志

IIS 访问出现 EntityName 时出错