Ответ 1
Олицетворение позволяет машинизировать олицетворение машины, поэтому браузер клиента и сервер находятся на одной странице, когда дело доходит до олицетворения. Когда вы пытаетесь получить доступ к сетевому ресурсу, компьютер не доверяет выданным учетным данным.
Вам нужно включить делегирование для машины IIS в Active Directory. Перейдите в раздел "Пользователи и компьютеры Active Directory", найдите компьютер, нажмите "Свойства" и "Доверьте компьютер для делегирования". (Возможно, вам придется перезапустить IIS, чтобы это работало, я не помню).
Существует больше теории, чем это, что я не совсем понимаю, но это должно сработать. Правильно ли это или нет, кто-то может прокомментировать!
Кроме того, причина, по которой он работает на вашей машине разработки, заключается в том, что сервер разработки работает как разработчик, а не (локальный)\Network Service.
Достойная ссылка:
http://msdn.microsoft.com/en-us/library/cc949004.aspx
В чем разница между олицетворением и делегированием?
Олицетворение передает исходный идентификатор вызывающих абонентов на внутренние ресурсы на одном компьютере. Делегирование передает исходный идентификатор вызывающих абонентов на внутренние ресурсы на компьютерах, отличных от компьютера, на котором запущена служба.
Например, если служба работает в IIS без олицетворения, служба будет обращаться к ресурсам с использованием учетной записи ASP.NET в IIS 5.0 или учетной записи сетевой службы в IIS 6.0. При олицетворении, если клиент подключается с использованием учетной записи исходных абонентов, служба будет обращаться к ресурсам, таким как база данных SQL Server, на том же компьютере, используя учетную запись исходных учетных записей, вместо учетной записи ASP.NET системы. Делегирование аналогично, за исключением того, что база данных SQL Server может находиться на другом компьютере, удаленном от службы.