Ошибка 500 при запуске модульного теста Visual Studio ASP.NET - PullRequest
16 голосов
/ 04 ноября 2008

У меня есть следующий метод в моем проекте модульного тестирования:

    [TestMethod]
    [HostType("ASP.NET")]
    [UrlToTest("http://localhost:3418/Web/SysCoord/ChooseEPA.aspx")]
    [AspNetDevelopmentServerHost("%PathToWebRoot%")]
    public void TestMethod1()
    {
        Page page = TestContext.RequestedPage;
        Assert.IsTrue(false, "Test ran, at least.");
    }

Я получаю это исключение:

Тестовый адаптер «WebHostAdapter» выдал исключение при выполнении теста «TestMethod1». Веб-сайт не может быть настроен правильно; Не удалось получить информацию о процессе ASP.NET. Запрос 'http://localhost:3418/SysCoord/VSEnterpriseHelper.axd' возвратил ошибку: удаленный сервер вернул ошибку: (404) Not Found. Удаленный сервер возвратил ошибку: (404) Not Found.

Страница работает как надо в браузере по URL: http://localhost:3418/Web/SysCoord/ChooseEPA.aspx.

Этот физический путь: C: \ ESI \ HR_Connect2 \ BenefitChangeSystem \ Application_DEV \ Web \ SysCoord.

Любые идеи будут оценены.

Обновление 1

Добавил следующее в мой файл web.config для этой статьи. Также сделал web.config доступным для записи и убил / перезапустил веб-сервер разработки. Без изменений в поведении.

<location path="VSEnterpriseHelper.axd">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

Обновление 2

Изменение атрибута AspNetDevelopmentServerHost на эквивалент [AspNetDevelopmentServerHost ("% PathToWebRoot% \ solutionfolder \ webfolder", "/ webfolder")] решило проблему 404.

К сожалению, тест начал выдавать ошибку 500 вместо. Прогресс, но не очень. Метод проб и ошибок в чистом проекте привел к выводу, что проблема связана с ссылками на пользовательские классы в файле web.config.

Например:

    <profile enabled="true" defaultProvider="MyProfileProvider">
        <providers>
            <add name="MyProfileProvider" connectionStringName="ProfileConnectionString" applicationName="/MyApp" type="System.Web.Profile.SqlProfileProvider"/>
        </providers>
        <properties>
            <add name="Theme" type="String" defaultValue="Default"/>
            <add name="LastLogon" type="DateTime"/>
            <add name="LastLogonIp" type="String"/>
            <!--
            <add name="EmployeeSearchCriteria" type="MyApplicationFramework.Profile.EmployeeSearchCriteria"/>
            <add name="DocumentSearchCriteria" type="MyApplicationFramework.Profile.DocumentSearchCriteria"/>
            -->
        </properties>
    </profile>

С перечисленными выше критериями тест прошел нормально. С их комментариями была возвращена ошибка 500.

У кого-нибудь была подобная проблема в прошлом?

Ответы [ 12 ]

0 голосов
/ 17 апреля 2009

Закомментируйте весь бит web.config вот так

<!-- <location path="VSEnterpriseHelper.axd">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>   </location>   -->

у меня сработало

0 голосов
/ 19 декабря 2008

Я столкнулся с той же проблемой при модульном тестировании. И нашел причину проблемы, а также решить ее. Проблема только с правами доступа к каталогу.

В моем случае я установил VSTS на другой диск (d), чем по умолчанию. Таким образом, только для того, чтобы предоставить пользователю полный доступ PCNAME \ ASPNET для всего каталога \ Program Files \ Microsoft Visual Studio 9.0 .

Я использую Windows XP, но если вы используете сервер окон, тогда предоставьте права доступа пользователю NetworkServices .

Этим решением я решил свою проблему. Надеюсь, вы найдете что-нибудь полезное из этого ответа.

Спасибо, Приеш Патель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...