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

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

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

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

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

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

ОБНОВЛЕНИЕ: я заметил, что мой dev-сервер работает в пуле приложений с 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>

1 ответ

Решение

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

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

Еще один тест - создать простой файл test.aspx в корневой папке сайта и убедиться, что сайт IIS также работает хорошо.

Другие вопросы по тегам