我在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>
=============================
谢谢,
埃里克
============
为了使这项工作成功,我有:
完成所有这些后,我仍然收到相同的HTTP 500错误,事件查看器中没有任何类型的条目。
还有其他想法吗?
谢谢,
埃里克
答案 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)
答案 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组提供写入权限。