none
DCOM 「実行時エラー 70: 書き込みできません」 RRS feed

  • 質問

  • はじめまして。
    次のような現象が発生しており、調査しておりますが、行き詰ってしまい当フォーラムに投稿いたします。

     

    『現象』
    クライアントマシン(XP)からDCOMサーバー(2003)に対してDCOMオブジェクトを生成しようとすると、「実行時エラー70 書き込みができません」が発生します。

     

    『詳細』
    クライアントプログラム動かして、呼び出してみると、
    「実行時エラー 70: 書き込みできません」というメッセージが表示します。

    また、呼び出し元(クライアント)イベントビューアに以下のエラーが記録されております。

    --------------------------------------------------------------
    ソース:DCOM
    分類:なし 種類:なし
    イベントID:10006
    サーバー:
    {XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} をアクティブにしようとしたときに コンピュータ {#コンピュータ名#} でエラー "エラー: 一般のアクセスが拒否されました " が発生しました。
    詳細な情報は、​http://go.microsoft.com/fwlink/events.asp​ の [ヘルプとサポート センター] を参照してください。
    ---------------------------------------------------------------

     

    『環境』
    サーバOS:Win2003Server ←DCOMを配置しているサーバー
    クライアントOS:WinXP SP2 ←DCOMオブジェクトを呼び出しているクライアントアプリケーション
    開発言語:VB6(クライアント、サーバー共に)

    ※ファイアーウォール、ウィルスソフトは、現在使用しておりません。

     

    『プログラム』
    ★サーバー側のクラスは以下の感じ(DComSrvTest.Class1)
    Function Sum(ByVal x As Long, ByVal y As Long) As String
    Sum = "てすと!!" + Str(x + y)
    End Function

    ★クライアントの呼びだしはこんな感じにしております。
    Private Sub Command1_Click()
    Dim a As Object
    Set a = CreateObject("DComSrvTest.Class1", "testSrv")
    MsgBox a.Sum(10, 10)
    End Sub

    『行ったことを整理します』
    思考錯誤したことを列挙します。

    ・Dcomcnfgのマイコンピュータのプロパティを開いて、既定のプロパティタブを選択、既定の認証レベルを接続にして、既定の偽装レベルを「識別」、「匿名」、「偽装」の3種類、試してみた。

    ・DcomcnfgのDCOMの構成の中から、DComSrvTest.Class1のプロパティを選択し、セキュリティタブを選択し、アクセス権、起動アクセス権、構成アクセス許可のそれぞれを、既定からカスタマイズに変更し、EveryOneを追加及び許可できるものはすべて許可(フルコントロール)した。

    ・クライアントからサーバーへの接続は、サーバーに用意されているユーザーアカウント(administrator権限を与えている)で、ログインしている状態で行ってみた。

    ・コンピュータの構成\Windows の設定\セキュリティの設定\ローカル ポリシー\セキュリティ オプション
     DCOM: セキュリティ記述子定義言語 (SDDL) でのコンピュータ アクセス制限
     DCOM: セキュリティ記述子定義言語 (SDDL) でのコンピュータ起動制限
     のそれぞれに、everyoneを追加。

    上記調査で参考にした文献が以下のとおりです。
    ・イベントビューアに記載されている「ヘルプとサポート センター」

    ・​http://support.microsoft.com/kb/180384/ja

     

    『ご質問』
    経験不足なのか知識不足なのか行き詰っております。
    本件の原因の特定方法、とっかかりなどありましたら、
    アドバイスください。
    上記現象内容から原因が既にわかっている方おりましたら、
    ご教授ください。

    また、少しでも疑わしいこと、気になることなど、思い当たるふしなどありましたら、教えてください。藁をも掴む気持ちです。
    情報お待ちしております m(。 。)m

    2008年5月29日 23:09

回答

すべての返信

  • こんにちは。中川俊輔 です。

     

    DCOMのトラブルシューティングについて、もうひとつドキュメントがありますので紹介します。

    Visual Basic のクライアント/サーバー アプリケーション用に DCOM をトラブルシューティングする方法
    http://support.microsoft.com/?scid=kb%3Bja%3B269330&x=14&y=12

     

    obataさんが参考にされたドキュメントとかぶる部分もあるかと思いますが、

    参考になると幸いです。

    それでは!


    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

     

    2008年6月2日 10:18
  • 中川様

     

    情報ありがとうございます。

     

    認証レベルの組み合わせがわかりやすいですね。

    このあたり、確認したつもりですが、いただいた文章に沿って、再度チェックしてみます。

    結果は、追ってフィードバックいたします。

     

    2008年6月2日 15:02
  •  

    原因判明いたしました。

    OS側の観点で別フォーラムにQA出してみました。
    有効回答ありましたので、参考までにURL記載いたします。

    http://forums.microsoft.com/TechNet-JA/ShowPost.aspx?PostID=3439507&SiteID=36&mode=1

    2008年6月4日 2:24
  • こんにちは。フォーラムオペレータ大久保です。

     

    obata さん、情報ありがとうございます!

    TechNetのスレッドもそうですが、こちらの情報も皆さんに有効活用してもらいたいと思いますので、ちょっと反則気味ですがobata さんご自身の投稿に「回答済み」チェックをつけさせていただきました。

     

    今後とも両フォーラムをよろしくお願いします!

    2008年6月20日 0:46