OData / WCF データ サービス - HTTP 500 エラー
質問
現在のパッチがすべてインストールされている Windows XP SP3 上で Visual Studio 2010 を使用して OData/WCF サービスを作成しました。
[ブラウザで表示] をクリックするとサービスが開き、EF モデルの 3 つのテーブルが表示されます。ただし、クエリ文字列の末尾にテーブル名 (この場合は「Commands」) を追加すると、テーブルのデータが表示されず、HTTP 500 エラーが発生します。(このエラー (HTTP 500 内部サーバー エラー) は、アクセスしている Web サイトにサーバーの問題があり、Web ページが表示されなかったことを意味します。).
2 つのサイトの例に従っただけでなく、ブログ投稿者が送ってくれた (彼のマシンで動作する) サンプル アプリケーションも実行してみましたが、まだうまくいきません。
ブログ投稿は次のとおりです Entity Framework モデルからの 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>
アップデート:
これを機能させるために、私は次のようにしました。
- IISを削除して再インストールしました
- %WINDIR%\Microsoft.Net\Framework\v4.0.30319\aspnet_regiis –i –enable コマンドを実行しました。
- %WINDIR%\Microsoft.Net\Framework\v4.0.30319\ServiceModelReg.exe -r コマンドを実行しました。
- 新しいソリューションを作成し、私が何も台無しにしなかったことを保証するために、非常に慎重に指示に従いました。
これをすべて行っても、依然として同じ HTTP 500 エラーが発生し、イベント ビューアにはいかなる種類のエントリも表示されません。
他に何かアイデアはありますか?
解決
私は私の問題は、データベースを開くの問題だったことを考え出しました。私はそれを考え出した方法は、InitializeService方法でservicename.svc.csファイルに以下を追加しました:
config.UseVerboseErrors=true;
助けようとしたすべての人に感謝します。
エリック
他のヒント
config.UseVerboseErrors=true;
は、問題を見つけるに私を助けました。問題は、私は、データベース接続のためのWindows認証を使用していたでした。 SQL Server認証に変更した後すべてが正常に働いています。
起こった実際のエラーを確認するためにこれらのデバッグのヒントを試してください: ます。http:// blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspxする
500
は常にサービスで未処理の例外があったことを意味します。そのエラーが何であったか確認するために、Windowsのイベントログに行くのを見ます。
VS2013と同様の出力を受信します:
Entity Frameworkのをアップグレードすることで解決しました。
を参照してください答え https://stackoverflow.com/a/21028123/2116188するます。
あなたはまた、IISでWebアプリケーションの要求トレースを失敗したアクティブにすることができます。
500エラーがを発生したときにあなたはIISからXMLファイルにdetailledトレース実行を取得します
IISのトレース設定失敗した要求にどのように説明し、ここで良い記事があります
HTH セドリック
あなたはIUSRSグループに書き込み、ファイルのアクセス権を与える必要があります。
例:あなたはDataDirectoryのすなわちYourWeb / App_DataにでNorthWind.sdfを使用している場合、あなたは、IISコンソールまたはWindowsエクスプローラから_IUSRSグループにある[書き込み権限を与える必要があります。
。