- PR -

Windows Server 2003 RC2でのSystem.Web.Mail.SmtpMail

1
投稿者投稿内容
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2003-03-02 11:17
 こういうプログラムがWindows Server 2003 RC2で動かないのですが、うちだけでしょうか?

コード:
using System;

namespace ConsoleApplication2
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            System.Web.Mail.MailMessage message = new System.Web.Mail.MailMessage();
            message.From = "hitomi@piedey.co.jp";
            message.To = "hitomi@piedey.co.jp";;
            message.Subject = "CDO TEST";
            message.Body = "test mail";
            System.Web.Mail.SmtpMail.SmtpServer = "tina.piedey.co.jp";
            System.Web.Mail.SmtpMail.Send( message );
        }
    }
}



 実行したときに発生した例外。
コード:
ハンドルされていない例外 : System.Reflection.TargetInvocationException: 呼び出し
のターゲットが例外をスローしました。 ---> System.Runtime.InteropServices.COMExce
ption (0x80029C4A): タイプ ライブラリ/DLL の読み込みエラーです。
   --- 内部例外スタック トレースの終わり ---
   at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[]
namedParameters)
   at System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Bind
er binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureI
nfo culture, String[] namedParameters)
   at System.Web.Mail.CdoSysHelper.Send(MailMessage message)
   at System.Web.Mail.SmtpMail.Send(MailMessage message)
   at ConsoleApplication2.Class1.Main(String[] args) in d:\w\test\consoleapplica
tion23\class1.cs:line 16


環境はWindows Server 2003早期評価キット+Visual Studio 2003 Beta
でも実行したプログラムは現行バージョンのVS.NETでビルドしてWindows XP上で動作確認したバイナリー。どちらでビルドしても結果は同じですが。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2003-03-02 12:24
当方のRC2サーバーではSMTPMAIL正常動作しております。

いかんせん、RCのことなのではっきり分からないのですが、
もしかしたらIIS6.0のインストールもしくは設定が問題なのかも?
と思います。ご参考までに。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2003-03-02 14:48
引用:

当方のRC2サーバーではSMTPMAIL正常動作しております。


 ということは、うちだけの問題なのかな。
 とりあえず、Windows 2000からcdosys.dllをコピーしてきたら正常にメールが送信された、という出来事が1回だけありました。勝手にDLLを書き換えても自動的に修復されてしまうようで、できたのは1回だけです。
 このことから考えると、ファイル(cdosys.dll?)が壊れているだけなのかな?
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2003-03-02 17:18
>このことから考えると、ファイル(cdosys.dll?)が壊れているだけなのかな?

こちらのRC2サーバのcdosys.dllのファイル情報です。参考になれば幸いですー。
ファイルサイズ:2,041,856
更新日付:2002/11/25 21:00:00
バージョン情報:6.5.6745.0

あと、当方のサーバは新規インストールではなく、2000Serverからの
アップグレードです。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2003-03-02 17:53
 情報ありがとうございます。
 サイズ、日付、バージョン、すべて一致しています。
 しかし、うちは、まっさらのパーティションにゼロから入れたという点で手順が異なっていますね。
 まあ、このサーバ上で動作させたい最低必須のプログラムはこの問題を回避するコードを埋め込んでしまったので、今のところ実用上の問題は無いですが、気持ちが悪いので原因が分かったら嬉しいです。
 (でも、RC2だし、製品版で正常に動けば分からなくても良いかな、という後ろ向きな気持ちも )
NothingButXMLInfoSet
大ベテラン
会議室デビュー日: 2002/07/16
投稿数: 116
投稿日時: 2003-03-02 18:01
XPのCDOはADO 2.5(msado25.tlb)を、Server 2003のCDOはADO2.7(msado15.dll)をimportlibしているようです。autumnさんのマシンで、これらのCOM的登録状況はどうなっているでしょうか。2000のCDOを持っていくと動くあたり、このへんのバージョン不整合が原因のような気もします。

ちなみに私も試しましたが、XP+VS2002(FxSP2)でビルドしてServer2003RC2+VS2003環境で実行しましたが、問題なく実行できました。ただし、うちのVS2003は英語版で比較的新しいバージョンです。
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2003-03-03 09:45
 なるほど。メールを送るだけでDB方面が関係するわけがないと、うっかり思ったのが素人の浅はかさ、だったようですね。
 msado15.dllのバージョンは2.80.1015.0でした。ADO 2.7ではなく2.8ということでしょうか?
 COM的登録というのが何か良く分かりませんでしたが、レジストリを見ると2.8というバージョン番号が付いたADO関係の名前が多数登録されていました。
 ちょっと気持ちが悪いので、現在、別のテストマシンに新規にOSを入れ直して、どこで問題が起きているか確認中です。
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2003-03-03 13:08
 テストマシンでも再現しました。

手順:

1) OSを新規パーティションにインストール
 MSDNで送ってきたWindows .NET Server 2003 Enterprise Edition Release Candidate 2 日本語版のCDを使用。別パーティションのWindows2000からインストール開始。パーティションの指定を除き、設定などは全てデフォルトのまま。

2) IIS6を有効にする (関係ないかも知れない)

3) この時点で問題のプログラムは正常動作

4) VS.NET 2003のインストール
 Visual Studio .net Version 2003 日本語ベータ版 (CD6枚組。箱に入って配布されているもの)を使用。設定などはデフォルトのまま。

5) この時点で問題のプログラムは動作しなくなっている

 このことから考えて、同じCDを使った場合には同じ現象が確実に再発してしまう可能性があるような気がします。
1

スキルアップ/キャリアアップ(JOB@IT)