- PR -

VB.NET WEBサービスについて

1
投稿者投稿内容
おさるさん
常連さん
会議室デビュー日: 2004/01/05
投稿数: 24
投稿日時: 2004-01-05 16:42
VB.NET

WEBサービスについて

Windows2000サーバーSP4.0 IIS5.0
Visual Studio.net 2003 Professional
NET.FrameWork 1.1


上記の開発環境で、WEBサービスのテスト
(実際にはDefaultのHellow world)を
デバッグモードで実施したところ
IEブラウザにはサービスの初期メニューが表示され
Hellow Worldをクリックすると起動ボタンが表示され
ボタンをクリックすると

System.IO.FileNotFoundException: ファイルまたはアセンブリ名 6dbwqmc1.dll、またはその依存関係の 1 つが見つかりませんでした。
ファイル名 : "6dbwqmc1.dll" at System.Reflection.Assembly.nLoad(AssemblyName === Pre-bind state information ===
LOG: Where-ref bind. Location = D:\\WINNT\\TEMP\\6dbwqmc1.dllLOG: Appbase = file:///d:/inetpub/wwwroot/WEBS002LOG: Initial PrivatePath = binCalling assembly : (Unknown).===LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).LOG: Attempting download of new URL file:///D:/WINNT/TEMP/6dbwqmc1.dll.

上記のエラーメッセージが表示され、バインドが失敗する旨のメッセージが
実行ごとにアセンブリ名が異なって表示されます。
該当DLLの存在をファイルの検索で確認してもどこにも存在しません

情報をお持ちの方のご回答を期待しています。
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-06 06:36
 そのエラーは、他の端末でも発生しますか?

 バインドできないといっているファイルはテンポラリファイル、おそらくキャッシュなので、毎回変わるのはそのためでしょう。エラーが発生する端末で使用しているブラウザのキャッシュがどのように設定されているか、確認してみてください。
おさるさん
常連さん
会議室デビュー日: 2004/01/05
投稿数: 24
投稿日時: 2004-01-06 08:48
Jittaさん
投稿ありがとう御座います。
早速ブラウザを確認してみます。
おさるさん
常連さん
会議室デビュー日: 2004/01/05
投稿数: 24
投稿日時: 2004-01-14 19:41
jittaさん
色々ご指導ありがとう御座いました。

本業に手間を取られながら、合間の調査でしたので
よく判らないまま間延びしてしまいました。

一応解決しましたので結果の報告をしておきます。
1)pre-bindのエラーである。
2)\WINNT\TEMP上でのエラーである
3)エラーとなるDllが毎回変わる
4)該当dllがPC上に存在しない

以上の事から当初インストール上の問題も考えたのですが
参考資料を色々検討した結果

A)デバックの際ブラウザには.asmxのサービス内容が表示され
 起動ボタンの表示画面まで到達する(SOAP経由でASP.NETに制御が移る)
B)NETFrameworkのJITまでの段階のエラーである。
C)エラーがpre-bindなのでマネージコードのネイティブ化の段階である。

以上の事が初心者にも判断できましたので
NETFrameWorkの参考資料を熟読しますと

MSILのネイティブ化の際
クラスライブラリーからクラスローダーにより
共通アッセンブリがグローバルアッセンブリキャッシュに
ロードされJITコンパイラーによりネイティブコード化され
実行されていることが判りました。

そのグローバルアッセンブリキャッシュにロードされる
アッセンブリはmscorlibに包含され外部に表示されていない
Dllであることも判明しました。

そこでWINNT\TEMPがそのグローバルアッセンブリキャッシュ
と推測しWINNT\TEMPのプロパティよりセキュリティを確認すると
ASPNETの権限が登録されていません。
ASPNETの権限を登録すると問題なく動作しました。

独り言
インストールの際IISの権限関係は自動設定されるのに
グローバルアッセンブリキャッシュのほったらかし
マイクロソフトらしいかな?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-15 08:32
引用:

おさるさんさんの書き込み (2004-01-14 19:41) より:

そこでWINNTTEMPがそのグローバルアッセンブリキャッシュ
と推測しWINNTTEMPのプロパティよりセキュリティを確認すると
ASPNETの権限が登録されていません。
ASPNETの権限を登録すると問題なく動作しました。

独り言
インストールの際IISの権限関係は自動設定されるのに
グローバルアッセンブリキャッシュのほったらかし
マイクロソフトらしいかな?


 解決して良かったですね。
 私の方も\Windows\Tempを確認しましたが、aspnet_wp accountがフルアクセスになっていました。が、私はこれを触った記憶がないんですよ(^^;。「ほったらかし」なのではなく、「XP以降をターゲット」にして、Windowsディレクトリ名の違うWindows2000は放っておかれたのかも。
#こっちの方がMSらしい?
1

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