2009-05-29 4 views
1

クライアントのサーバーにASP.NET Webサイトをインストールしました。このサイトには、ニュースフィードを表示するためにFlashオブジェクトによって呼び出されるいくつかのWebメソッドを持つWebサービスがあります。自分のサイト(例:www.domain.com)を参照すると、フラッシュ以外はすべて正常に動作します。.NET WebサービスのWSDLで不正なURLを使用した場合の問題

問題は、.asmxを参照すると、ホストがそのネットワーク(internal.domain.com)の内部のサブドメインであることがわかります。明らかに、これはネットワークの外部からブラウズするときにパブリックIPに解決されません。これは、フラッシュオブジェクトがページに埋め込まれているために失敗するため、クライアントサイドを実行しているためです。

問題のサーバーでコンピュータ名を確認しましたが、「internal.domain.com」と一致しません。まったく異なるものです。この情報はどこから得られますか?ホストヘッダーが設定されておらず、サイトのIPが(割り当てられていない)すべてに設定されているため、IISからは送信されません。

Webサービスを強制的に特定のホストに対して実行するか、サーバー上の何かを変更して有効な公開側のホスト名に解決する必要があります。すべての助けが大いに評価されている!!

+0

のホストヘッダーを追加することですこれは、WCFのSVCファイルまたはプレーンASMXサービスですか? –

+0

Webサービスを最初にプロジェクトに追加した人ではないので、実際は完全にはわかりません。違いは何ですか?私が知っているのは、.asmxファイルがサイトのルートにあるWebServicesフォルダにあり、codebehind(.cs)ファイルがApp_Codeディレクトリにあることです。それはそこにあるすべてのものです。 – Keith

+0

クライアントがWeb /ネットワークトラフィック用にリバースプロキシを使用していることがわかったので、通過していたホストヘッダーが実際のURL /ホスト名と一致しませんでした。彼らはそれを解決することができませんでしたので、私たちはWebサービスを呼び出していたフラッシュの部分を取り除かなければなりませんでした。 – Keith

答えて

0

あなたはおそらく既にこれをしなかったが、それは常に良い最初のステップです:

は、Flashオブジェクト、問題の文字列のためのWebサービスの両方のソースコード内のグローバル検索を実行してください。

誰かがinternal.domain.com文字列をFlashオブジェクトの要求に設定/コード化しているようですね。 (ホスト:レスポンスヘッダ、IIRCではなくHTTPリクエストヘッダです)

+0

答えはありがたいですが、それはフラッシュの問題ではなく、Webサービス自体にあります。ブラウザーで.asmxファイルを直接参照し、いずれかのWebメソッドをクリックし、SOAPヘッダーを調べると、「Host:internal.domain.com」が表示されます。 そして、ソリューション全体でinternal.domain.comの検索を行いました(internal.domain.comが存在していたことは明らかでないため、結果が返されないことは分かっていました)。このホスト名はマシン自体から来ていなければなりませんが、どこにありますか? – Keith

0

C#コードからFlashオブジェクトがWebサービスURLを取得していますか?その場合は、Web参照をVS内のプロジェクトに追加するときに選択する既定のWebサービスURLを取得している可能性があります。したがって、ライブサーバーで認識されない開発者のマシン/サーバーのローカルURLを指している可能性があります。

+0

これも私たちの開発ボックスで開発されたもので、devボックスはinternal.domain.comが何であるか分からないので、これがデフォルトになったことはありません。クライアントのサーバー上のホスト名が、www.domain.comの代わりにinternal.domain.comとして解決されていると考えられます。私はIISとコンピュータ名フィールド(私のコンピュータ - >プロパティ - >コンピュータ名)をチェックし、どこもinternal.domainではありません。comは述べた/参照した。 – Keith

関連する問題