2012-05-04 15 views
0

誰かが私を助けることができますか?私は次のコードを使用し、XMLDocumentのようASMXをロード:私は、サーバー内部エラーをreceved本番サーバーでASMXサービスをXMLDocumentとしてロード

string url = "http://www.*******.com/WebService.asmx/Test"; 
    wsResponse.Load(url); 
    string XMLDocument = wsResponse.InnerXml; 
    Response.ContentType = "text/xml"; 
    Response.Write(XMLDocument); 

を、それが共有ホスティングです。ローカルホストでは、Webサービスは正常に消費されます。 Webサービスが "サービステスト"として単純な文字列を返す サービスはHTTPでリクエストされています。

何が原因で問題を解決できますか。

P.S.上の共有、彼らは確かに、奇妙な方法であることを彼らsuddendly AJAXを経由して消費するクロスドメインのWebサービスをサポートするために停止するので、私はサービスを消費することはできません

enter image description here

答えて

0

ホスティングので、私は、このアプローチを使用するようにしてくださいWebサービスを照会する通常、サービス参照/プロキシクラスを追加し、web.configにサービスエンドポイントを指定します。あなたが何らかの理由でこの方法を使用することができない場合は、私が推測するあなたのWebサービスのURLをHttpRequestのを宣言することができる(これはtheoricある)http://msdn.microsoft.com/en-US/library/y92e0td0.aspx

をしてなどの応答を取得:

あなたはここで読むことができます文字列

1

"5"で始まるHTTPエラーコードはすべてサーバーエラーです。つまり、それはあなたのサービスの中で未処理の例外です。このような方法でサービスにアクセスするときにのみ例外が発生する可能性がありますが、例外は確実にサービス内にあります。

アプリケーションイベントログを調べて、例外の詳細が記録されているかどうかを確認してください。それ以外の場合は、サービスをデバッグするか、そうでなければサービスが例外を記録している可能性がある場所を探します。

このように、サービスにアクセスすると、HTTP GET動詞が使用されます。サービスのweb.configでは、HttpGetプロトコルを有効にする必要があります。これは、デフォルトでは無効になって、そしてあなたはそれを有効にする必要があります:

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration> 

は最後に、私はちょうどあなたがASMX技術は、従来の技術であり、そして新開発のために使用すべきではないことを知っているを確認します。

+0

10倍、はい私はASMXは古い技術であることを知っているが、プロジェクトは長い時間前に構築しました私は最小の努力でそれを修正するつもりはない。 「HttpGet」もweb.configに設定されています。私はホスティングパネルを見て、アプリケーションログにアクセスする場所が見つからないので、とにかくsuuportに依頼します。 – Tiho

0

有効なユーザーエージェントが予想されるため、リモートサーバーに問題があるようです。ここで

は修正だ:ここでは

var m_strFilePath = "http://www.google.com/ig/api?weather=12414&hl=it"; 
     string xmlStr; 
     using (var wc = new WebClient()) 
     { 
      wc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 
      TaskCompletionSource<string> tcs = new TaskCompletionSource<string>(); 
      xmlStr = wc.DownloadString(m_strFilePath); 
     } 
     xdoc.LoadXml(xmlStr); 

はStackOverflowのウェブサイト上の記事です: 答えをwebclient The remote server returned an error: (500) Internal Server Error

関連する問題