QA@IT

ASP.net のサイトに接続ができません

5788 PV

現在開発中の ASP.net のシステムで、開発環境ではクライアントから接続ができているのですが、客先の本番サーバーに環境を構築したところ、次のエラーが発生してデータベースに接続ができませんでした。

■ エラーメッセージ +++++++++++++++++++++++++++++++++++++

リモート サーバーが次のエラーを返しました: NotFound。

場所 System.ServiceModel.DomainServices.Client.WebDomainClient`1.EndQueryCore(IAsyncResult asyncResult)
場所 System.ServiceModel.DomainServices.Client.DomainClient.EndQuery(IAsyncResult asyncResult)
場所 System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult)
InnerException
リモート サーバーが次のエラーを返しました: NotFound。 場所 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
場所 System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
場所 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)

+++++++++++++++++++++++++++++++++++++++++++++

■ 動作環境

WindowsServer2008 SP2
ASP.net
.netFramework4.0
データベースは別サーバーの Oracle11g

そのほか必要な内容についてご指摘いただきましたら追記いたします。

恐れ入りますがよろしくお願いします。

以上

  • 開発環境で使っているのは ASP.NET 開発サーバーですか? だとすると、その違い問題になっているのでは? 何が違うかは:  http://surferonwww.info/BlogEngine/post/2011/11/18/ASPNET-development-server-and-IIS.aspx -
  • ご回答ありがとうございます。
    説明が不十分でした。
    開発用に本番環境とほぼ同様の機器構成(WEBサーバーとDBサーバーが別)で、IISを使って検証しています。
    よろしくお願いします。
    -
  • 回答に追記しました。 -
  • エラーメッセージの「リモート サーバー」というのは DB サーバーですよね? 開発環境と運用環境では違うものですか? 違うものであれば、どこに違いがあるかから調べていく他ないと思いますが。 -
  • ご回答ありがとうございます。
    それ以降状況が変わりました。
    WebサーバーではOracle接続用にODP.netは使っていないと聞いていたのですが、実際には使用していたことがわかりインストールして設定してみました。
    Webサーバー内部からはIEにてDBにアクセスして値を表示することができるようになったのですが、他の端末(たとえばDBサーバー)からは相変らずDBに接続できません
    -
  • データベースの値を取得するところでエラーになってしまいます。 -
  • Web サーバーの IE からはアクセスできるが、一般クライアントの PC の IE から Web サーバーに接続し、Web サーバーが外部のリソース(今回の場合 DB サーバー)にアクセスに行く時、アクセス権の問題で拒否されるということですよね。そのケースでよくあるのがダブルホップ問題です。心当たりはありませんか? -
  • 「ダブルホップ問題」というのが何か不明なら、その言葉をキーワードにググってみて下さい。ここで私が説明するより分かりやすい記事が見つかるはずです。 -
  • 現在症状が変わったためにこちらの方をFixし新たな質問をさせていただきます。
    ご提言いただきありがとうございました。
    -

回答

本番サーバーのデータ量が開発環境に比べて非常に多いということはありますか?

以下のようなページを見かけました。
Web.configの dataContractSerializer の MaxItemsInObjectGraph の値を増やす事で大きなデータ通信の制限を緩和させる方法の様です。

WCF RIA Services の「Not Found」エラーの回避方法
http://blogs.bitlan.net/ito/?p=2559

上記ページの元情報

MaxItemsInObjectGraph – WCF RIA Services Exception
http://blogs.objectsharp.com/post/2010/04/13/MaxItemsInObjectGraph-%E2%80%93-WCF-RIA-Services-Exception.aspx

WCF RIA Services - “Not Found” Error Message
http://blogs.objectsharp.com/post/2010/04/13/WCF-RIA-Services-%E2%80%9CNot-Found%E2%80%9D-Error-Message.aspx


Throwされている例外がわからないですが、例外の流れが同じという点では以下がありました。

こちらはWindows認証と匿名認証が両方有効になっていたためにエラー。

http://d.hatena.ne.jp/vagabond890/20110930/1317373894

こちらはIISサービスに問題があったので入れなおしたようです

http://social.msdn.microsoft.com/Forums/silverlight/en-US/3ccb5044-0efb-4941-bc90-0b0ef4da7205/silverlight-business-application-got-error-in-iis?forum=silverlighthosting

ただ、他にエラーとなったサーバーで一部のdllがなかったり、バージョン相違で内部エラー起こしている場合にも
Not Foundエラーとなるようですので、追いかけないと厳しいかもしれませんね

XmlSerializerのDLLが古かった

http://blogs.yahoo.co.jp/bumin_macintosh/archive/2012/09/18

デバッグして dllが不足していたことがわかった

http://stackoverflow.com/questions/2920916/the-remote-server-returned-an-error-notfound

リンクばかりで恐縮です。

編集 履歴 (1)
  • ご回答ありがとうございます。
    私自身本件に途中から携わったのですが、それまでに他の担当者が提示していただいた内容について対応していた模様です。
    ありがとうございます。
    -
  • 現在症状が変わったためにこちらの方をFixし新たな質問をさせていただきます。
    ご提言いただきありがとうございました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。