2009-10-23 11 views
5

Mam stronę .net, która znajduje się na serwerze internetowym z IIS 6.0 na serwerze win2k3. Obejmuje to katalog wirtualny, który wskazuje za pośrednictwem nazwy UNC na serwer plików. "Połącz jako" jest skonfigurowany do korzystania z konta usługi w naszej domenie AD, które ma dostęp do aplikacji internetowej, a także do zapisu i modyfikacji w folderze serwera plików. Obecnie używam aliasingu z kontem usługi i ustawiłem odpowiednie uprawnienia w folderze plików tymczasowych Miscrosoft.net na serwerze internetowym. Nie mogę utworzyć katalogu zapisu lub zapisać pliku. Wszelkie informacje zostaną docenione.FileUpload .net kontrolowanie i zapisywanie plików w folderze wirtualnym na zdalnym serwerze plików

Odpowiedz

2

Po pierwsze, hasła "Połącz jako" nie będą przechowywane w pamięci podręcznej na zawsze (restart) i może być konieczne znalezienie alternatywy dla tej metody połączenia z tego powodu, niestety.

Po drugie, czy konto pracownika ASP.NET "Nazwa komputera IUSR_IIS" ma dostęp do katalogu docelowego, w którym piszesz? Zakładam, że nie, ponieważ nie będzie to znany użytkownik na serwerze zdalnym. Oznacza to, że specjalny użytkownik/obiekt "Wszyscy" będzie musiał uzyskać dostęp (w danym scenariuszu).

Alternatywą byłoby połączenie przy użyciu użytkownika znanego obu hostom.

+0

mam skonfigurowane konto usługa, która znajduje się w naszej domenie AD. Skonfigurowałem to konto usługi w web.config z wpisem tożsamości, jak również connect as (który działa do przeglądania plików w folderze wirtualnym), ale nie pomaga w pisaniu. Z niektórych artykułów, które znalazłem w .net dodałem w dodatkowej zmianie do folderu .net tempfile na serwerze WWW, który jest wymagany, aby te pliki mogły być buforowane. Myślę, że częścią problemu jest nazwa UNC i sposób przekazywania tożsamości. Dodam fragment kodu w osobnym komentarzu. –

+0

Załączam fragment kodu: z default.aspx: string SaveLocation = Server.MapPath ("/") + "ServerInspectionFilePath" + "\\" + ClientFileName; od web.config: Myślę, że składnia/format ścieżki jest wyłączona. Mogę być zmuszony do zdalnej debugowania na serwerze sieciowym. –

0

Mam to teraz działa. Aby to działało poprawnie, potrzebujesz: 1. Konto usługi z nie wygasającym hasłem w Twojej domenie, które jest dostępne dla serwera sieciowego i serwera plików 2. Tworzysz odpowiedni folder wirtualny z "połącz jako" ustaw na koncie usługi z odpowiednim hasłem: 3. Należy podać uprawnienia zapisu do konta usługi do katalogu .net Microsoft.NET \ Framework \ v2.0.50727 \ Tymczasowy katalog plików ASP.NET na serwerze 4. Usługa Konto musi mieć dostęp do odczytu/zapisu/modyfikacji do folderu plików 5. "Zapisz jako" musi być pełną nazwą UNC serwera plików. Nie używaj ścieżki server.map, ale pełną nazwę folderu, na przykład: \ myserver \ nazwa_udziału \ katalogu \ + nazwa_pliku. Przechowuję moje w web.config jako parę klucz/wartość.

To podsumowuje.

Fragment kodu:

spróbować { if (uploadDoc.FileName = ""!) {

   if (!Directory.Exists(MyFilePath)) 
        Directory.CreateDirectory(ServerFilePath); 


       if (!File.Exists(Server.MapPath(ServerFileName))) 
       { 
        uploadDoc.PostedFile.SaveAs(SaveLocation); 
       } 
Powiązane problemy