2010-12-18 11 views
1

私は奇妙な問題に直面しています: DBからデータを取得する簡単なWCFサービスがあります。ローカルのserviceHostでサービスをホストすると、すべて正常に動作しますが、ローカルのIIS(7.5 - windows 7)で同じサービスをホストすると、この例外が発生します。The Undelying provider failed on openDBにアクセスするとIIS 7.5が失敗する

私はサービス内にいくつかのロギングサービスを持っていますが、この例外はサービスがいくつかのDBサービス(特にDBサービスではない)を呼び出すときにのみ発生することがわかりました 。奇妙なことは、サービスがIIS上でホストされていないとき、この同じDBコールが正常に機能することです。

私が行ったこと:IISサーバーでASP.NET偽装を有効にする - >役に立たなかった

別のこと:私はSQL Server 2008 Expressを使用しています。

他のアイデア???

+1

内部例外または詳細エクセプションメッセージを送信できますか。多分あなたはIISがあなたのDBにアクセスすることを許可する必要があります –

答えて

2

どのようなセキュリティ機構を使用していますか?何らかの種類のKerberos/Windows認証を使用しており、IISがこれらの資格情報をSQLサーバーに渡すことができない可能性があります。この問題はダブルホップの問題とも呼ばれ、通常は委任によって解決されます(ASP.NET委任ではありません)。

リンク:Delegation and Impersonation

+0

私はWindows認証を使用しています。 – Liran

+0

実際にIISでASP.Netの偽装を有効にすると問題が解決しました。方向(セキュリティ)のおかげでWCFトレースログのソケットがタイムアウトし、私が試したすべての調整が役に立たなかったと報告されました。もう一度ありがとう。 – Liran

1

は、.NET 4.0でサービスを実行していると仮定すると、問題のアプリケーションを提供するIISおよびアプリケーションプールで顔をしています。

アプリケーションプールを実行しているアカウントがApplicationPoolIdentityの場合、データベースにログインしてください。"IIS AppPool \ DefaultAppPool"には、データベースへのアクセス権があります。右方向に指摘を取得するための最も簡単なものの

1

ワンWindowsのイベントログ、特にセキュリティログをチェックすることです。それは何が起こっているのかを伝えているかもしれません。

IISマシンとDBマシンの両方でこれらを確認してください。

1

私には、最も可能性の高い原因がセキュリティのように聞こえます。

IIS 7.5には、さまざまなセキュリティレイヤがあります。各AppPoolには独自のセキュリティ認証情報があり、確認する必要があります。

また、IIS Windowsサービス自体にセキュリティ資格情報があります。ローカルアカウントに設定されている場合は、ネットワークアカウントに設定してみてください。

ただし、投稿したエラーメッセージは一般的なWCFエラーです。私はJimにイベントログを詳しく調べることに同意します。もしあなたがそれを見つけたら、ここに投稿してください。

関連する問題