2010-06-12 79 views
12

我已经创建使用Visual Studio 2010在Windows XP SP3安装所有最新补丁的的OData/WCF服务。的OData/WCF数据服务 - HTTP 500错误

当我点击“在浏览器中查看”服务打开,我看到从我的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 \框架\ v4.0.30319 \ ASPNET_REGIIS -i -enable命令
  3. 运行%WINDIR%\ Microsoft.Net \ Framework \ v4.0.30319 \ ServiceModelReg.exe -r命令。
  4. 创建一个新的解决方案和遵循的指示非常小心,以确保我 没惹什么了。

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

还有其他想法吗?

感谢,

埃里克

回答

16

我想通了,我的问题是与打开数据库的问题。我想出来的方法是将以下内容添加到servicename.svc中。在InitializeService方法CS文件:

config.UseVerboseErrors=true;

感谢所有谁试图帮助。

埃里克

1

500总是意味着有一个在服务未处理的异常。去看看Windows事件日志,看看是什么错误。

+2

John, 我在事件日志中没有任何条目。为了确保,我清除了现有的事件(所有信息 - 与应用程序无关),然后重新运行应用程序。相同的结果,事件日志中没有条目。 Eric – Eric 2010-06-12 22:14:31

+0

@Eric:你在服务器上看过,对吧? – 2010-06-13 01:00:44

+1

是的,我在我的开发系统上本地运行它。 Eric – Eric 2010-06-13 03:38:43

5

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

0

如果您使用的是SQL Server Compact数据文件(如NorthWind.sdf),则需要为IUSRS组提供写入文件权限。例如:如果您在DataDirectory中使用NorthWind.sdf,即YourWeb/App_Data,那么您需要将写入权限从IIS控制台或从Windows资源管理器授予_IUS组。

1

您还可以激活IIS

失败请求跟踪您的Web应用程序

那么当发生500错误

这里有一个很好的文章,解释如何你会得到从IIS XML文件中的相关详细跟踪执行在IIS安装失败请求跟踪:

Using Failed Request Tracing to Trace Rewrite Rules

HTH 塞德里克