2015-03-04 4 views
1

Я пытаюсь опубликовать сайт для IIS, который я разрабатываю с помощью MVC6 (бета 3) с Visual Studio 2015 (CTP 6). У меня есть набор публикаций, предназначенный для x64-версии KRE. Все идет хорошо с публикацией, и никаких ошибок не сообщается, но я не могу заставить сайт работать вообще.Публикация сайта MVC 6 с Visual Studio 2015 CTP 6 до IIS

Первая ошибка в том, что project.json не может быть найдена, но я установил, что при добавлении value ключа к kre-app-base в web.config, который добавляется в папку wwwroot, поэтому содержание:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <appSettings> 
    <add key="kpm-package-path" value="..\approot\packages" /> 
    <add key="bootstrapper-version" value="1.0.0-beta3" /> 
    <add key="runtime-path" value="..\approot\packages" /> 
    <add key="kre-version" value="1.0.0-beta3" /> 
    <add key="kre-clr" value="clr" /> 
    <add key="kre-app-base" value="..\approot\packages\ElectricFreedom.WebUI\1.0.0\root" /> 
    </appSettings> 
</configuration> 

Я тогда получить другую ошибку:

Error 500 message

В сноске ошибки, в нем говорится, что он использует Microsoft.AspNet.Loader.IIS версия "beta2"! Почему он делает это, когда проект настроен на использование «beta3»?

Я проверил project.json для моего проекта, и все зависимости перечислены как версии «бета3», но публикация по-прежнему копируется во множестве «бета2» в дополнение к версиям «beta3». Например, в каталоге для Microsoft.AspNet.Loader.IIS показаны два подкаталога: один для «бета2» и другой для «beta3». Если я удалить «бета2» каталог, то я получаю другую ошибку целиком:

Error 500 after deleting beta2 directory

Как вы можете видеть, эта ошибка показывает, что это с помощью «Beta3» версию Microsoft.AspNet.Loader.IIS, но теперь жалуется на зависимость инъекции.

Все это отлично работало в Visual Studio 2015 CTP5 с MVC 6 (бета 2). Единственный бит, который мне пришлось сделать, это добавить ключ value в kre-app-base, так как по какой-то причине публикация не смогла это сделать. Сайт также отлично работает при отладке в IIS Express, и я не получаю ни одной из ошибок, о которых сообщалось выше при этом.

Существуют ли какие-либо файлы конфигурации или настройки, которые могут вызывать эти ошибки? Мне что-то не хватает?

Спасибо,

+0

Я протестировал его, и я обнаружил, что он работает для меня в CTP6, как и CTP5. Просто убедитесь, что вы указали wwwroot как ваш rootdirectory приложения. – dotnetstep

+0

Указывается на wwwroot. Он работал нормально, когда я использовал CTP5, но тот же проект больше не работает с CTP6. Я могу только предположить, что некоторые настройки изменились между версиями, и это привело к сбою моего проекта. Проблема в том, что все изменилось, и убедитесь, что у моего проекта новые настройки ... –

ответ

0

Похоже, что некоторые временные файлы, созданные в процессе публикации, которые не были удалены между версиями. Они были расположены по адресу %temp%\AspNetPublish\[ProjectName], и удаление этой папки удалило ошибки, которые я видел, когда они очистили все старые DLL-файлы, которые не должны были публиковаться, и должны были противоречить новым версиям.

0

Я могу воспроизвести его, открыв проект CTP5 в CTP6. Я четко вижу проблему в некоторых сборках.

я сделал нижеследующий предмет.

  1. В Project.json заменить beta2 на бета3 в зависимостях.

  2. После того, как вы выполните шаг1, он даст вам проблему с миграцией и причину, по которой происходит некоторое изменение пространства имен и возвращаемого типа некоторого метода в AccountController. Если вы удалите каталог миграции и AccountController после публикации, он успешно отобразит home/index.

+0

Да, я прошел эти шаги, чтобы обновить проект, и все было хорошо скомпилировано. Он также отлично работает через IIS Express. Проблема заключалась в том, когда дело дошло до публикации, что некоторые файлы остались в каталоге temp из бета2, которые не были удалены при повторной публикации. Как упоминалось в моем ответе, я решил его, удалив все временные файлы. –

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