- - PR -
XML Webサービスへのアクセスについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-28 17:07
こんにちは。初めて質問をさせていただきます。
いま、visual studio 2005で開発をしています。 windowsアプリケーションからwebサービスを呼び出すという処理をしたいのですが、 webサービス内の関数を呼び出す処理のところで 「型 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。」 というエラーがでてしまいます。 (補足:windowsアプリケーションには以下のようなコードを記述しており、webサービス内の関数であるfun_addを呼び出すところでエラーが発生します。) obj = New web参照名.Service a = Convert.ToInt32(TextBox1.Text) b = Convert.ToInt32(TextBox2.Text) result = obj.fun_add(a, b) visual studio からサーバに配置したwindowsアプリケーションを開き、 Debugモードで実行するとwebサービスがちゃんと呼び出せるのですが、 Releseモードで実行すると上記のようなエラーがでるという状況です。 windowsアプリケーションとwebサービスは、それぞれに仮想ディレクトリを作成し、 同じサーバに配置しています。 DebugモードとReleseモードでは実行者が異なるからかな?と考えたのですが、結局解決できませんでした。何かセキュリティに関する設定が必要でしょうか? 初歩的な質問かと思いますので申し訳ありませんが、どなたかご回答をいただけると助かります。よろしくお願いします。 | ||||
|
投稿日時: 2006-04-29 18:26
今日は
先ずは、動作確認をWebサービスとWindowsアプリとを切り分けた方がいいと思います。 Webサービスは、Localのブラウザよりテスト出来ますので、 Webサービスが正常に動作していることを確認し、 その後Windowsアプリの動作を確認。 又、WindowsアプリをReleseモードで動作させる時、Webサービスは正規の配置又は、Debug状態などの情報も示してください。 visual studio 2005よりDebug状態ではIISを使わないで動作しているハズです。 | ||||
|
投稿日時: 2006-05-01 09:31
太字の所が気になったのですが、実行しようとしている PC と、Windows アプリケーションのアセンブリ(EXE ファイル)がおいてある PC は同じなのでしょうか。 違う PC であれば、まぁ、発生するでしょうね。セキュリティ系の記事を一通り読んでみてください。 VS2005 では、Debug モードでは FullTrust (ローカル実行)で動作します。どこかに ClickOnce の設定をするところがあるので、そこで ClickOnce の設定すれば、Debug モードでも同じ例外が発生するようになります。 また、必要なパーミッションをチェックする機能もあったはず。。。 さらに、コンパイルオプションによっては、アセンブリに必要なパーミッションが記述されていないと、警告が出るはず。。。 1度見ただけなので、詳細は忘れました。調べて報告していただけるとうれしいです。 | ||||
|
投稿日時: 2006-05-01 23:37
rvmxさん、Jittaさん、書き込みありがとうございます。
Jittaさんのご指摘どおり、実行しようとしている PC とWindows アプリケーションEXE ファイルがおいてある PC は別のマシンです。 rvmxさん、Jittaさんからの情報をいただいて、vs2005はDebug状態ではIISを使わず、ローカル実行のFullTrust状態で動作していることが理解できました。 どうりでDebug状態だと動くわけですね。 Jittaさんのおっしゃる「必要なパーミッションをチェックする機能」というのも探してみます! 現在休暇中ですのですぐに試してみることができませんが、何かわかり次第書き込ませていただきます☆ |
1