22

数分前、私はVisual Studio 2010でプロジェクトに取り組んでいましたが、突然PCが再起動しました。
再起動後、ローカルマシンでそのWebサイトを閲覧すると、以下のエラーが発生しました。

リクエストはHTTPステータス417で失敗しました:期待に失敗しました。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.Net.WebException:リクエストはHTTPステータス417で失敗しました:期待に失敗しました。

私のWebサイトの名前は次のとおりMyWebSite
です。MyWebSiteが使用しているリモートサーバー(vps)にWebサービスがあり、そのエラーはそれに関連しています。

Line 172:        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/MyWebSiteEnable", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
Line 173:        public bool MyWebSiteEnable() {
Line 174:            object[] results = this.Invoke("MyWebSiteEnable", new object[0]);
Line 175:            return ((bool)(results[0]));
Line 176:        }

そのWebサービスについてはすべて問題ありません。
では、このエラーとは何ですか?どうすれば修正できますか?
そのWebサービス内にはtrueを返す単純なboolメソッドがあります。
そして私はそのウェブサービスをコードビハインドで使用しています:以下のように:

private void CheckForPageExpiration()
{
    MyService service = new MyService();
    if (service.MyWebSiteEnable())
    {
    }
    else
    {
        Response.Redirect("~/blank.aspx");
    }
}

そのWebサービスを削除して再度追加しましたが、それでもエラーが発生します。
それについて何が問題になっていますか?

前もって感謝します

4

2 に答える 2

46

これは、問題がサーバーからの100継続応答をサポートしていないプロキシサーバーであり、それを解決するためのコードを示していることを示しています。これは、それが別のネットワークで機能する理由を説明します。

ISPに慣行を変更するように説得する可能性は低いため(ただし、リクエストに害はありません)、リンクが示すように、100-Continueを送信する動作をオフにする必要があります。

このコードをWebリクエストの前に置く:

System.Net.ServicePointManager.Expect100Continue = false;

または、<configuration>タグの子としてアプリケーション構成ファイルに次の行を追加します。

<system.net>
    <settings>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>
于 2012-06-25T23:51:53.940 に答える
0

設定ファイルに以下のコード行を追加します。

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>
于 2016-03-07T06:01:11.147 に答える