12

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

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

我不仅遵循了 2 个站点的示例,还尝试运行博客发帖人发送给我的示例应用程序(在他的机器上运行),但仍然没有任何运气。

该博客文章位于从实体框架模型中公开 OData

有谁知道为什么会发生这种情况以及如何解决它?

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

<?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 命令
  3. 运行 %WINDIR%\Microsoft.Net\Framework\v4.0.30319\ServiceModelReg.exe -r 命令。
  4. 创建了一个新的解决方案并非常仔细地按照说明操作,以确保我没有搞砸任何事情。

毕竟,我仍然收到相同的 HTTP 500 错误,事件查看器中没有任何类型的条目。

还有其他想法吗?

4

7 回答 7

16

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

config.UseVerboseErrors=true;

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

埃里克

于 2010-06-16T16:43:12.137 回答
5

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

于 2010-06-16T14:33:50.013 回答
5

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

于 2011-03-19T16:45:29.393 回答
2

500总是意味着服务中存在未处理的异常。去查看 Windows 事件日志以查看该错误是什么。

于 2010-06-12T20:44:33.770 回答
2

使用 VS2013 收到类似的输出:

HTTP 500 内部服务器错误截图

通过升级实体框架解决。

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

于 2014-01-10T18:17:33.083 回答
1

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

那么当发生 500 错误时,您将在 IIS 的 Xml 文件中获得详细的跟踪执行情况

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

使用失败的请求跟踪来跟踪重写规则

HTH塞德里克

于 2012-06-17T22:05:16.993 回答
0

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

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

于 2012-06-17T21:55:08.480 回答