Назад | Перейти на главную страницу

Установка приложения .NET на проблемы с IIS 7.5

Я пытаюсь установить веб-сервис, написанный другим парнем на .NET. У меня есть базовое понимание IIS. Веб-сервис отлично работает на моем компьютере разработчика, но когда я пытаюсь перенести веб-сервис на рабочий сервер, случаются неприятности.

Веб-сервис находится по адресу C:\inetpub\wwwroot\ на сервере разработки. Но на этом производственном сервере он должен находиться по адресу D:\services\.

Мне удалось установить приложение на рабочий сервер, и все кажется прекрасным. Но когда я Test Settings при начальной настройке я получаю Invalid application path ошибка. Я могу просто закрыть его и по-прежнему установить, но затем, когда я попытаюсь получить доступ к веб-сервису (по адресу http://myserver.com/webservice/GetData) Ничего не произошло. Просто пустая страница, и когда я проверяю заголовки ответов, есть 500 ошибка.

Я не знаю, что здесь происходит и в чем проблема. Вот файл конфигурации, поэтому кто-то может заметить что-то странное.

РЕДАКТИРОВАТЬ: Конфигурационный файл взят с моего сервера разработки. Я просто скопировал его на свой рабочий сервер ... но это явно не сработало :-)

ОБНОВИТЬ: Я заметил, что мой сервер разработки работает в пуле приложений с Net 4 и в «классическом» «режиме». На производственном сервере это было в NET 4, но в «интегрированном» режиме. Поэтому я изменил его на «классический». У меня все еще остается пустая страница. Но проверка журнала выдаст следующее:

2012-10-03 14:57:00 ip удален GET / boo / GetData - 80 - ip удален Mozilla / 5.0 + (Windows + NT + 6.1; + WOW64; + rv: 15.0) + Gecko / 20100101 + Firefox / 15.0.1 404 2 1260 203

ОБНОВЛЕНИЕ 2: Спасибо, ребята, за вашу помощь. Ваши комментарии помогли в том, что искать. После долгого просмотра журналов и управления правами Я нашел этот Microsoft KB.

После проверки ограничений ISAPI и CGI на уровне сервера я обнаружил, что .NET 4 и .NET 4 64 запрещены. После разрешения обоих, НАКОНЕЦ мой веб-сервис начал говорить.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <identity impersonate="true" />
    <!-- Impersonate NT AUTHORITY/IUSR -->
    <compilation targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b7735c561131e089" />
      </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <httpErrors existingResponse="PassThrough" />
    <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
   </httpProtocol>
        <directoryBrowse enabled="false" />
  </system.webServer>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <standardEndpoints>
      <webHttpEndpoint>
        <!-- 
            Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
            via the attributes on the <standardEndpoint> element below
        -->
        <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>
  <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=someip;initial catalog=db_90;User ID=user1;Password=access2;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

Это может быть лучший вопрос для stackoverflow.com, но сейчас я попробую.

С точки зрения IIS, если вы можете узнать конкретную ошибку 500, это может дать большую подсказку. Проверьте журналы IIS в c: \ inetpub \ logs \ Logfiles \ w3svc {siteid}. Найдите записи для неудачных тестов, и ближе к концу вы должны увидеть 500 {пробел} {что-то} {пробел} {что-то}. Это у {чего-то} есть дальнейшие подсказки.

Другой тест - создать простой test.aspx в корневой папке сайта и убедиться, что сайт IIS тоже работает нормально.