2010-06-11 7 views
0

Начну с приложений; Я не был уверен, что это было лучшим размещен здесь Server неисправностей, так что если его в неправильном месте, то перенесите :-)Проблемы с развертыванием/проблемами приложений Asp.net mvc

Основной информации

Я написал первый модуль нового приложения на Работа. Это написано с использованием Visual Studio 2010, нацеленного на .net 3.5 (на данный момент) и asp.net mvc 2. Это отлично работает во время разработки на встроенном сервере разработки из VS, но, однако, не работает после его развертывания в IIS 7 /7.5.

Чтобы развернуть приложение, я построил его в режиме деблокирования и создал пакет развертывания, щелкнув правой кнопкой мыши по проекту в проводнике решений (это будет сделано с автоматической сборкой в ​​tfs после обновления с бета-версии). Затем он был импортирован в IIS на сервере.

Приложение использует проверку подлинности Windows/домена.

Выпуск № 1

Я могу запустить интернет эксплорер и перейдите к приложению с клиентского компьютера, а также на подключение к удаленному рабочему столу. Я могу выполнить код, который читает/хранит данные в сеансе отлично от экземпляра IE на удаленном рабочем столе, но если я перейду к нему с клиентского ПК, он, похоже, потеряет состояние сеанса. Я нажимаю кнопку «Отправить форму», и страница обновляется и не выполняет требуемый код. Я пробовал настроить; InProc, SQLServer и StateServer. но не повезло :-(

Выпуск # 2

В рамках приложения он рассматривает PDF и Tiff документы на лету, которые находятся на сетевом ресурсе в офисной сети и создает эскизы, если документ . не рассматривалась, прежде чем это работает, если работает на компьютере приложение развертывается на, однако при просмотре на клиентском компьютере, я получаю сообщение об ошибке сказав:

Доступ к пути «\\ файловый_сервер \ папка \ file.tif 'отрицается Описание: Необработанное исключение произошло во время выполнения операции веб-запрос. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.UnauthorizedAccessException: доступ к пути '\\ fileserver \ folder \ file.TIF' запрещен.

ASP.NET не имеет права доступа к запрашиваемому ресурсу. Рассмотрите возможность предоставления прав доступа ресурсу к идентификатору запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET на IIS 5 или Network Service на IIS 6), который используется, если приложение не выдаёт себя за другое. Если приложение выдаст себя, идентификатор будет анонимным пользователем (обычно IUSR_MACHINENAME) или пользователем, прошедшим проверку подлинности.

Поскольку это на другом сервере, пользователь недоступен. Чтобы обойти это, я попытался:

1 - настройка пула приложений для работы в качестве администратора домена (я знаю, что это риск для безопасности, но я просто пытаюсь заставить его работать в данный момент!)

2 - установить учетную запись журнала для службы публикации World Wide Web, которая будет администратором домена. При попытке перезапустить службу я получаю ...

Windows не может начать службу службы публикации всемирной паутины на локальном компьютере.

Ошибка 1079: Учетная запись, указанная для этой услуги, отличается от учетной записи, указанной для других служб, работающих в том же процессе.

Любые указатели/помощь будут многозначительными, поскольку я вытаскиваю свои волосы (из того, что у меня осталось).


Update

Я использую этот трусливый маленький инструмент, который я нашел - DelegConfig v2 beta (Delegation/Kerberos Configuration Tool). Это было действительно полезно. Таким образом, у меня есть доступ к файловому ресурсу (есть тестовая страница, которая будет читать файлы), так что теперь у меня есть проблема с передачей учетных данных пользователей через SQL Server (по моему выбору сделать это таким образом !!), чтобы выполнять запросы и т. д., но я не могу заставить его войти в систему как пользователь. Он пытается получить к нему доступ как «NT Authority \ Network Service», у которого нет входа в систему sql (как должен быть зарегистрированный пользователь).

Моя строка соединения:

<add name="User" connectionString="Data Source=.;Integrated Security=True" providerName="System.Data.SqlClient" /> 

Нет начальный каталог не указан как система в течение нескольких DBS (тоже не был мой выбор !!).

Я действительно предлагаю всю помощь до сих пор! :-)

Любые дальнейшие намеки ?!

ответ

0

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

Как я уже говорил в обновлении, инструмент для сортировки делегирования полномочий было очень удобно и не помог ни конца, чтобы настройки правильной SPN записи.

Я нашел, что мне также пришлось настроить его для SQL, когда я проходил учетные данные на сервере. Другая вещь, которую я обнаружил, останавливая соединения, - это некоторые из параметров брандмауэра входящих событий, в которых возникают проблемы.

Для соединительной строки; Я должен был обновиться до:

<add name="ConnectionStringName" connectionString="Data Source=.;Integrated Security=SSPI;Trusted_Connection=True" providerName="System.Data.SqlClient" /> 

Ссылки я нашел полезным:

Kerberos Authentication and SQL Server

DelegConfig

И даже то она в основном говорит о Sharepoint ... this был также полезен.

Надеюсь, что это поможет людям в будущем.

0

С помощью этой небольшой части информации, которую я мог бы дать только некоторые намеки:

Выпуск № 1: Может быть, у вас есть искаженное URL в качестве действия для формы? Или пойманный & проигнорировал исключение? У вас есть событие onError в вашем global.asax.vb?

Sub Application_Error() 
    Dim ex As Exception = Server.GetLastError 
    ' NOW HANDLE THE EXCEPTION --> REPORTING :-) 
End Sub 

Выпуск № 2: Недавно я имел то же самое исключение - я должен был проверить доступ с правами пользователей для этой папки и установить AppPool-идентичность «NETWORKSERVICE». В вашем случае вы даже пытаетесь получить доступ к сетевой папке - проверьте права доступа на сервере и попытайтесь использовать IP вместо имени - это может быть проблема с разрешением имен?

Извините за эту небольшую часть информации ... Это похоже на проблемы, доступные только с прямыми вариантами отладки на работающем сервере.

1

Выпуск № 2 - варианты:

  • Настройка делегирования (аутентификация двойного прыжка) - я не сделал это на IIS7 и это немного отличается от 6, но я полагаю, вы должны включить учетную запись компьютера веб-сервера для делегирования в AD и создать SPN для веб-сервера (например, setspn -A http/<Web Server FQDN> <Domain>\<Machine Name>). Устранение неполадок Kerberos может быть довольно болезненным.
  • Предоставление доступа к сетевым ресурсам для (домена) учетной записи пула приложений и убедитесь, что анонимная проверка подлинности включена (<anonymousAuthentication enabled="true" userName="" defaultLogonDomain="" />)

Ответ Обновление:

Вам нужно будет убедиться, Аутентификация Kerberos работает для SQL Server. Запустить запрос select auth_scheme from sys.dm_exec_connections where [email protected]@spid; он вернет NTLM или KERBEROS. Если это NTLM, вам нужно будет выполнить некоторую работу по настройке SQL Server для использования Kerberos. Установите SPN в AD для учетной записи службы SQL: setspn -A MSSQLSvc/<SQL Server FQDN>:1433 <Domain>\<Sql Service Account>, перезапустите SQL Server и повторите запрос. Вы должны использовать TCP/IP в качестве механизма подключения (это значение по умолчанию).

Если у вас нет начального каталога, вам необходимо убедиться, что все пользовательские логины имеют базу данных по умолчанию, к которой у них есть доступ. Я бы лично выбрал одну базу данных как начальный каталог, так как вы можете получить другое поведение в зависимости от того, как настроен логин.