2013-03-20 3 views
2

Мои веб-приложения находятся на сервере D. Итак, я создал веб-приложение с файловым контролем. Я могу легко загрузить любой файл в папку (FILES) внутри веб-приложения.Загрузка файлов на другой сервер

Мой вопрос сейчас: как я могу загрузить тот же файл (из кода позади) в папку (UPLOADS) на другом сервере (SERVER T), который у меня есть? Мне также нужно прочитать, написать и изменить этот файл на SERVER T. Помните, что я использую Web Forms, а не Windows Forms !!!

Кто-то рассказал мне кое-что о создании учетной записи сетевой службы на сервере T для веб-приложения на сервере D, чтобы использовать и предоставлять разрешения учетной записи или что-то в этом роде, но он также не знает деталей.

Есть ли учебник, руководство, так как я уверен, что есть способ сделать это ...

Кроме того, все, что я могу найти на Google использует FTP, но только для форм окон ...

Любопытное застрял здесь ...

+0

Имеет ли целевой сервер общую папку, к которой можно получить доступ с помощью исходного сервера? – Yahya

+0

@DavidStratton Предполагает, что серверы знают друг о друге, и я всегда буду говорить, что эта статья демонстрирует путь _not_ для этого; создать посреднический вектор для связи, такой как услуга. –

+0

@Yahya, да вам вопрос. 2 сервера находятся в одной сети, и они могут обращаться друг к другу // ServerT // ServerD – Nathan

ответ

2

Взятые из this blog post

Мы можем сделать following-

  1. Вход в учетную запись пользователя с помощью C#
  2. IMPERSONATE как зарегистрированный пользователь
  3. Скопируйте файл с помощью System.IO .File.Copy
0

очень простое решение было бы просто FTP файл на новый сервер, здесь является примером

http://www.codeproject.com/Articles/343913/Simple-FTP-library-in-Csharp

или делать HTTP POST на другой сервер здесь является SO вопрос с приличным ответ на это делать

FileUpload to FileStream

когда файл находится на другом сервере нажмите работу обновления/изменения/и т.д. в другой сервер

2

Если вам нужно прочитать файлы/записи/изменения в сетевой папке, вы можете попробовать это:

Open IIS > Application Pools 
      > Select Application pool of the site 
       > Advanced Options 
       > Process Model > Select Identity 

Теперь вы должны знать Application Pool Account. Наконец, убедитесь, что у учетной записи есть необходимые права на папку SERVER T\UPLOADS.

+0

Примечание: это не goi чтобы работать, если сайт использует олицетворение. –

+0

? Извините, если мой комментарий выглядит так: «ваш ответ неправильный» - все, что я хотел, напомнил будущим читателям, что этот подход может не сразу работать на сайтах. Олицетворение/«NTLM one-hop-hell» уже очень тяжело, поэтому полезно знать, когда какое-то решение не применимо. –

+0

@AlexeiLevenkov, ах, .. это нормально. Дополнительная информация всегда приветствуется! – Kaf

Смежные вопросы