服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志
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<T>
,而不是DataService<T>
。 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)启动失败,提示“请求失败或服务未及时响应。有关详细信息请参