- PR -

XML Webサービスへのアクセスについて

1
投稿者投稿内容
ジュリア
会議室デビュー日: 2006/04/28
投稿数: 8
投稿日時: 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モードでは実行者が異なるからかな?と考えたのですが、結局解決できませんでした。何かセキュリティに関する設定が必要でしょうか?
初歩的な質問かと思いますので申し訳ありませんが、どなたかご回答をいただけると助かります。よろしくお願いします。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2006-04-29 18:26
今日は

先ずは、動作確認をWebサービスとWindowsアプリとを切り分けた方がいいと思います。
Webサービスは、Localのブラウザよりテスト出来ますので、
Webサービスが正常に動作していることを確認し、
その後Windowsアプリの動作を確認。

又、WindowsアプリをReleseモードで動作させる時、Webサービスは正規の配置又は、Debug状態などの情報も示してください。
visual studio 2005よりDebug状態ではIISを使わないで動作しているハズです。


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-01 09:31
引用:

ジュリアさんの書き込み (2006-04-28 17:07) より:

いま、visual studio 2005で開発をしています。

windowsアプリケーションからwebサービスを呼び出すという処理をしたいのですが、
webサービス内の関数を呼び出す処理のところで

「型 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。」
というエラーがでてしまいます。


visual studio からサーバに配置したwindowsアプリケーションを開き
Debugモードで実行するとwebサービスがちゃんと呼び出せるのですが、
Releseモードで実行すると上記のようなエラーがでるという状況です。

windowsアプリケーションとwebサービスは、それぞれに仮想ディレクトリを作成し、
同じサーバに配置しています。


DebugモードとReleseモードでは実行者が異なるからかな?と考えたのですが、結局解決できませんでした。何かセキュリティに関する設定が必要でしょうか?
初歩的な質問かと思いますので申し訳ありませんが、どなたかご回答をいただけると助かります。よろしくお願いします。


 太字の所が気になったのですが、実行しようとしている PC と、Windows アプリケーションのアセンブリ(EXE ファイル)がおいてある PC は同じなのでしょうか。

 違う PC であれば、まぁ、発生するでしょうね。セキュリティ系の記事を一通り読んでみてください。

 VS2005 では、Debug モードでは FullTrust (ローカル実行)で動作します。どこかに ClickOnce の設定をするところがあるので、そこで ClickOnce の設定すれば、Debug モードでも同じ例外が発生するようになります。
 また、必要なパーミッションをチェックする機能もあったはず。。。
 さらに、コンパイルオプションによっては、アセンブリに必要なパーミッションが記述されていないと、警告が出るはず。。。


 1度見ただけなので、詳細は忘れました。調べて報告していただけるとうれしいです。
ジュリア
会議室デビュー日: 2006/04/28
投稿数: 8
投稿日時: 2006-05-01 23:37
rvmxさん、Jittaさん、書き込みありがとうございます。

Jittaさんのご指摘どおり、実行しようとしている PC とWindows アプリケーションEXE ファイルがおいてある PC は別のマシンです。
rvmxさん、Jittaさんからの情報をいただいて、vs2005はDebug状態ではIISを使わず、ローカル実行のFullTrust状態で動作していることが理解できました。
どうりでDebug状態だと動くわけですね。
Jittaさんのおっしゃる「必要なパーミッションをチェックする機能」というのも探してみます!
現在休暇中ですのですぐに試してみることができませんが、何かわかり次第書き込ませていただきます☆
1

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