IIS6(XP Pro SP2)で実行されている.NET 2.0 Webサイト(VB)と、ASMX Webサービスをホストしている.NET 3.5(IISのASP.NETタブで.NET2として構成されている)があります。
Chromeでは、ASMXを呼び出してWebメソッドを正常に呼び出すことができます。ただし、コードでWebメソッドを呼び出すと、.NET 2.0 Webサイトから次のようになります。
リクエストはHTTPステータス401で失敗しました:Unauthorized。
どうすればこれを回避できますか?
webService
オブジェクトを初期化するときに、アプリケーションに認証情報を設定する必要があります。
何かのようなもの webService.UseDefaultCredentials = true
これにより、アプリケーションを実行している現在のユーザーにリクエストの認証情報が設定されます。
webService.UseDefaultCredentials = true
これでうまくいきました。
IIS 7で、匿名認証を有効にすると、デバッグできるはずです。
これを使用できます:
webservice.UseDefaultCredentials = true;
機能しない場合は、上記のコードの代わりに以下のコードを使用してください
webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;
注:ユーザー名のパスワードとドメインは、webserviceにアクセスするユーザーのユーザー資格情報です
したがって、ユーザーがWebサービスにアクセスする権限を持っていることを確認してください
多分ユーザーはwindowsユーザーです
ドメインは次の場所から取得できます。「MyComputer」を右クリックして、ドメインがコンピュータ名またはワークグループであるプロパティ
私はこの方法でテストしています:
CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
UseDefaultCredentials = true };