Accéder à un partage réseau à partir d'une application asp.net. Travaux dans Visual Studio, mais pas dans IIS, pourquoi?

StackOverflow https://stackoverflow.com/questions/5341771

  •  27-10-2019
  •  | 
  •  

Question

J'ai un partage réseau dans l'intranet qui permet un accès en écriture à tout le monde (invité)

Alors, je l'ai écrit un programme (module mojoPortal, de toute façon, il est la même chose, je pense) en C # qui écrit des fichiers dans cette voie, et travaille en studio visuel grand.

Maintenant, en utilisant le même programme dans IIS 7.5, ne fonctionne pas, je reçois cette exception:

System.Net.WebException: Une exception eu lieu lors d'une demande de WebClient. ---> System.IO.IOException - Échec de la connexion: nom d'utilisateur inconnu ou mauvais mot de passe.

Eh bien ... puisque l'accès de la part smb est accordée à tout le monde, je ne comprends pas pourquoi il ne fonctionne pas sur IIS ...

Le code est le suivant:

WebClient wc = new WebClient();
wc.DownloadFile(urltodownload, smbshare);

Qu'est-ce que cela peut être? Merci

Était-ce utile?

La solution

Votre service IIS pas accordé à partage de fichiers d'accès par défaut. Vous pouvez essayer de gérer votre site avec l'identité du pool d'applications ensemble Système local , ou contrôler manuellement l'identité sous laquelle le code est exécuté à partir web.config:

<system.web>
  <identity impersonate="true" userName="user with correct rights or admin" password="password"/>
  ...

Autres conseils

Avez-vous essayé de placer les informations d'identification?

Je crois que le groupe tout le monde exige encore un titre valide de quelque sorte, sans définir les informations d'identification anonymes ...

wc.Credentials = CredentialCache.DefaultCredentials;

Il ressemble à son pas un problème avec l'accès au partage SMB, son problème accédant au site Web stocké dans urltodownload. Comme Richard dit, vous pouvez utiliser les informations d'identification par défaut à savoir wc.UseDefaultCredentials = true; ou une série spécifique de pouvoirs ou mettre en place le site Web à l'adresse urltodownload pour accepter les connexions anonymes.

Reportez-vous à ce qui peut provoquer des WebException pour la méthode DownloadFile @ MSDN .

Vous avez besoin d'une sorte d'identification à utiliser une part de asp.net. Vous pouvez configurer une usurpation d'identité sur les wc.Credentials web.config ou ensemble à l'aide des informations d'identification du réseau. Dans le web.config que vous définissez la follwoing dans la section system.web:

<identity impersonate="true" userName="username_here" password="password_here" />

Pour mon application Visual Studio (WinForms), il était un simple acte de création d'une clé de nom fort (SNK) pour l'application à utiliser.

Je ne sais pas pourquoi.

Peut-être la création d'un SNK dans Visual Studio a une façon de mettre ces pouvoirs que les autres auteurs ci-dessus me parlez.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top