OData / WCF数据服务 - HTTP 500错误

时间:2010-06-12 15:11:20

标签: wcf http odata

我在Windows XP SP3上使用Visual Studio 2010创建了一个OData / WCF服务,并安装了所有当前的补丁。

当我点击“浏览器中的视图”时,服务打开,我看到EF模型中的3个表格。但是,当我将一个表名(在本例中为“Commands”)添加到查询字符串的末尾,而不是从表中查看数据时,我收到HTTP 500错误。 (此错误(HTTP 500内部服务器错误)表示您访问的网站存在服务器问题,导致无法显示网页。)

我不仅关注了2个网站的示例,还试图运行博客海报发送给我的示例应用程序(可以在他的机器上运行),但仍然没有运气。

博客文章位于Exposing OData from an Entity Framework Model

有没有人知道为什么会这样,以及如何解决它?

以下是“在浏览器中查看”的输出:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
- <service xml:base="http://localhost:1883/VistaDBCommandService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
- <workspace>
  <atom:title>Default</atom:title> 
- <collection href="Commands">
  <atom:title>Commands</atom:title> 
  </collection>
- <collection href="Databases">
  <atom:title>Databases</atom:title> 
  </collection>
- <collection href="Statuses">
  <atom:title>Statuses</atom:title> 
  </collection>
  </workspace>
  </service>

=============================

谢谢,

埃里克

============

更新

为了使这项工作成功,我有:

  1. 删除并重新安装IIS
  2. 跑%WINDIR%\ Microsoft.Net \ Framework \ v4.0.30319 \ aspnet_regiis -i -enable command
  3. 运行%WINDIR%\ Microsoft.Net \ Framework \ v4.0.30319 \ ServiceModelReg.exe -r命令。
  4. 创建了一个新的解决方案,并非常仔细地按照说明确保我 没有弄乱任何东西。
  5. 完成所有这些后,我仍然收到相同的HTTP 500错误,事件查看器中没有任何类型的条目。

    还有其他想法吗?

    谢谢,

    埃里克

7 个答案:

答案 0 :(得分:16)

我发现我的问题是打开数据库的问题。我想出来的方法是将以下内容添加到InitializeService方法中的servicename.svc.cs文件中:

config.UseVerboseErrors=true;

感谢所有试图提供帮助的人。

埃里克

答案 1 :(得分:5)

请尝试这些调试技巧,以查看发生的实际错误: http://blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspx

答案 2 :(得分:5)

config.UseVerboseErrors=true;帮助我找出问题所在。问题是我使用Windows身份验证进行数据库连接。更改为SQL Server身份验证后一切正常。

答案 3 :(得分:2)

500始终表示服务中存在未处理的异常。查看Windows事件日志以查看错误是什么。

答案 4 :(得分:2)

与VS2013收到类似的输出:

HTTP 500 Internal Server Error screenshot

通过升级实体框架解决。

请参阅答案https://stackoverflow.com/a/21028123/2116188

答案 5 :(得分:1)

您还可以在IIS中激活Web应用程序的失败请求跟踪

然后,当发生500错误时,您将从IIS中获取Xml文件中的详细跟踪执行

这里有一篇很好的文章解释了如何在IIS中设置失败的请求跟踪:

Using Failed Request Tracing to Trace Rewrite Rules

HTH 塞德里克

答案 6 :(得分:0)

如果您使用的是SQL Server Compact数据文件(如NorthWind.sdf),则需要向IUSRS组授予写文件权限。

例如:如果您在DataDirectory中使用NorthWind.sdf,即YourWeb / App_Data,则需要从IIS控制台或Windows资源管理器向_IUSRS组提供写入权限