J'ai un site Web .NET 2.0 (VB) sous IIS6 (XP Pro SP2) et un .NET 3.5 (configuré en tant que .NET2 sous l'onglet ASP.NET d'IIS, bien sûr) hébergeant un service Web ASMX.
Dans Chrome, je peux appeler ASMX et invoquer les méthodes Web avec succès. Cependant, en appelant les méthodes Web en code, à partir du site Web .NET 2.0, je reçois:
La requête a échoué avec le statut HTTP 401: non autorisé.
Comment puis-je contourner cela?
Vous devez définir les informations d'identification dans votre application lorsque vous initialisez l'objet webService
.
Quelque chose comme webService.UseDefaultCredentials = true
Cela définira les informations d'identification de la demande auprès de l'utilisateur en cours d'exécution de l'application.
webService.UseDefaultCredentials = true
Cela a fonctionné pour moi.
Dans IIS 7, activez l'authentification anonyme et vous devriez pouvoir déboguer.
vous pouvez utiliser ceci:
webservice.UseDefaultCredentials = true;
Si cela ne fonctionne pas, utilisez le code ci-dessous au lieu du code ci-dessus
webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;
Remarque: le nom d'utilisateur Mot de passe et domaine sont les informations d'identification de l'utilisateur ayant accès au service Web
alors assurez-vous que l'utilisateur est autorisé à accéder au service Web
peut-être que l'utilisateur est l'utilisateur Windows
et vous pouvez obtenir le domaine à partir de: clic droit sur "MyComputer" et propriétés le domaine est le nom de l'ordinateur ou le groupe de travail
je suis tester de cette façon:
CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
UseDefaultCredentials = true };