0

誰かが私を助けることができますか?ASMX を XMLDocument としてロードし、次のコードを使用します。

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

運用サーバーで SERVER INTERNAL エラーを受け取りました。これは共有ホスティング上にあります。ローカル ホストで、Web サービスが正常に消費されます。Web サービスは「サービス テスト」として単純な文字列を返します サービスは HTTP GET によって要求されます

問題の原因とその修正方法。

PS共有ホスティングでは、クロスドメインWebサービスの消費をサポートするために突然停止するため、このアプローチを使用しようとしています。そのため、ajax経由でサービスを消費することはできません

ここに画像の説明を入力

4

3 に答える 3

1

「5」で始まる HTTP エラー コードはすべてサーバー エラーです。これは、サービス内でハンドルされない例外であることを意味します。この方法でサービスにアクセスした場合にのみ例外が発生する可能性がありますが、例外は確かにサービス内にあります。

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

参考までに、その方法でサービスにアクセスするときは、HTTP GET 動詞を使用しています。サービスの web.config で、HttpGet プロトコルを有効にする必要があります。デフォルトでは無効になっているため、有効にする必要があります。

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

最後に、ASMX テクノロジはレガシー テクノロジであり、新しい開発には使用しないでください。

于 2012-05-04T15:05:50.280 に答える
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 Web サイトの記事は次のとおりです: webclient The remote server returned an error: (500) Internal Server Error

于 2013-04-25T14:14:21.400 に答える
0

確かに、これは Web サービスをクエリする奇妙な方法です。通常、サービス参照/プロキシ クラスを追加し、web.config でサービス エンドポイントを指定します。

ここで読むことができます:http://msdn.microsoft.com/en-US/library/y92e0td0.aspx

何らかの理由でこのメソッドを使用できない場合は、Web サービスの URL を使用して HttpRequest を宣言し、応答を文字列として取得できると思います (これは理論上の話です)。

于 2012-05-04T14:35:44.220 に答える